2026-10-27 17:53:38,734 [ 259677 ] INFO : ClickHouse root is not set. Will use /home/ubuntu/_work/_temp/test/git-repo-copy (runner:42, check_args_and_update_paths) 2026-10-27 17:53:38,734 [ 259677 ] INFO : Cases dir is not set. Will use /home/ubuntu/_work/_temp/test/git-repo-copy/tests/integration (runner:90, check_args_and_update_paths) 2026-10-27 17:53:38,734 [ 259677 ] INFO : src dir is not set. Will use /home/ubuntu/_work/_temp/test/git-repo-copy/src (runner:97, check_args_and_update_paths) 2026-10-27 17:53:38,734 [ 259677 ] INFO : base_configs_dir: /home/ubuntu/_work/_temp/test/git-repo-copy/programs/server, binary: /home/ubuntu/_work/_temp/test/build/clickhouse, cases_dir: /home/ubuntu/_work/_temp/test/git-repo-copy/tests/integration (runner:99, check_args_and_update_paths) 2026-10-27 17:53:38,734 [ 259677 ] INFO : Unknown image altinityinfra/dotnet-client (runner:357, ) Running pytest container as: 'docker run --rm --name clickhouse_integration_tests_jjplh7 --privileged --dns-search='.' --volume=/home/ubuntu/_work/_temp/test/build/clickhouse-odbc-bridge:/clickhouse-odbc-bridge --volume=/home/ubuntu/_work/_temp/test/build/clickhouse:/clickhouse --volume=/home/ubuntu/_work/_temp/test/build/clickhouse-library-bridge:/clickhouse-library-bridge --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/programs/server:/clickhouse-config --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/tests/integration:/ClickHouse/tests/integration --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/src/Server/grpc_protos:/ClickHouse/src/Server/grpc_protos --volume=/run:/run/host:ro --mount type=bind,source=/home/ubuntu/_work/_temp/test/dockerd_volume_dir,target=/var/lib/docker -e DOCKER_HELPER_TAG=1864 -e DOCKER_BASE_TAG=1864 -e DOCKER_KERBERIZED_HADOOP_TAG=1864 -e DOCKER_KERBEROS_KDC_TAG=1864 -e DOCKER_MYSQL_GOLANG_CLIENT_TAG=1864 -e DOCKER_MYSQL_JAVA_CLIENT_TAG=1864 -e DOCKER_MYSQL_JS_CLIENT_TAG=1864 -e DOCKER_MYSQL_PHP_CLIENT_TAG=1864 -e DOCKER_NGINX_DAV_TAG=1864 -e DOCKER_POSTGRESQL_JAVA_CLIENT_TAG=1864 -e DOCKER_CLIENT_TIMEOUT=300 -e COMPOSE_HTTP_TIMEOUT=600 -e CLICKHOUSE_USE_NEW_ANALYZER=1 -e PYTHONUNBUFFERED=1 -e PYTEST_ADDOPTS="--dist=loadfile -n 5 -rfEps --run-id=1 --color=no --durations=0 test_library_bridge/test_exiled.py::test_bridge_dies_with_parent test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 'test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node]' 'test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node]' test_postgresql_protocol/test.py::test_python_client -vvv" altinityinfra/integration-tests-runner:1864 '. Start tests ============================= test session starts ============================== platform linux -- Python 3.10.12, pytest-7.4.4, pluggy-1.7.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /ClickHouse/tests/integration configfile: pytest.ini plugins: repeat-0.9.4, order-1.0.1, random-0.2, timeout-2.2.0, xdist-3.5.0 timeout: 900.0s timeout method: signal timeout func_only: False created: 5/5 workers 5 workers [8 items] scheduling tests via LoadFileScheduling test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] test_library_bridge/test_exiled.py::test_bridge_dies_with_parent test_postgresql_protocol/test.py::test_python_client test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error [gw1] [ 12%] SKIPPED test_library_bridge/test_exiled.py::test_bridge_dies_with_parent [gw3] [ 25%] PASSED test_postgresql_protocol/test.py::test_python_client [gw2] [ 37%] SKIPPED test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error [gw0] [ 50%] FAILED test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] [gw0] [ 62%] FAILED test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node] [gw0] [ 75%] SKIPPED test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node] test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node] [gw0] [ 87%] SKIPPED test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node] test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node] [gw0] [100%] SKIPPED test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node] =================================== FAILURES =================================== _________________ test_heavy_insert_select_check_memory[node] __________________ [gw0] linux -- Python 3.10.12 /usr/bin/python3 cluster = broken_s3 = node_name = 'node' @pytest.mark.parametrize("node_name", ["node"]) def test_heavy_insert_select_check_memory(cluster, broken_s3, node_name): node = cluster.instances[node_name] node.query( """ CREATE TABLE central_query_log ( control_plane_id UUID, pod_id LowCardinality(String), scrape_ts_microseconds DateTime64(6) CODEC(Delta(8), LZ4), event_date Date, event_time DateTime, payload Array(String), payload_01 String, payload_02 String, payload_03 String, payload_04 String, payload_05 String, payload_06 String, payload_07 String, payload_08 String, payload_09 String, payload_10 String, payload_11 String, payload_12 String, payload_13 String, payload_14 String, payload_15 String, payload_16 String, payload_17 String, payload_18 String, payload_19 String ) ENGINE=MergeTree() PARTITION BY toYYYYMM(event_date) ORDER BY (control_plane_id, event_date, pod_id) SETTINGS storage_policy='s3' """ ) node.query("SYSTEM STOP MERGES central_query_log") write_count = 2 write_query_ids = [] for x in range(write_count): query_id = f"INSERT_INTO_TABLE_RANDOM_DATA_QUERY_ID_{x}" write_query_ids.append(query_id) > node.query( """ INSERT INTO central_query_log SELECT control_plane_id, pod_id, toStartOfHour(event_time) + toIntervalSecond(randUniform(0,60)) as scrape_ts_microseconds, toDate(event_time) as event_date, event_time, payload, payload[1] as payload_01, payload[2] as payload_02, payload[3] as payload_03, payload[4] as payload_04, payload[5] as payload_05, payload[6] as payload_06, payload[7] as payload_07, payload[8] as payload_08, payload[9] as payload_09, payload[10] as payload_10, payload[11] as payload_11, payload[12] as payload_12, payload[13] as payload_13, payload[14] as payload_14, payload[15] as payload_15, payload[16] as payload_16, payload[17] as payload_17, payload[18] as payload_18, payload[19] as payload_19 FROM ( SELECT control_plane_id, substring(payload[1], 1, 5) as pod_id, toDateTime('2022-12-12 00:00:00') + toIntervalDay(floor(randUniform(0,3))) + toIntervalHour(floor(randUniform(0,24))) + toIntervalSecond(floor(randUniform(0,60))) as event_time, payload FROM generateRandom( 'control_plane_id UUID, payload Array(String)', NULL, 100, 100 ) LIMIT 10000 ) SETTINGS max_insert_block_size=256000000, min_insert_block_size_rows=1000000, min_insert_block_size_bytes=256000000 """, query_id=query_id, ) test_merge_tree_s3/test.py:1020: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ helpers/cluster.py:3424: in query return self.client.query( helpers/client.py:36: in wrap return func(self, *args, **kwargs) helpers/client.py:74: in query ).get_answer() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_answer(self): self.process.wait(timeout=DEFAULT_QUERY_TIMEOUT) self.stdout_file.seek(0) self.stderr_file.seek(0) stdout = self.stdout_file.read().decode("utf-8", errors="replace") stderr = self.stderr_file.read().decode("utf-8", errors="replace") if ( self.timer is not None and not self.process_finished_before_timeout and not self.ignore_error ): logging.debug(f"Timed out. Last stdout:{stdout}, stderr:{stderr}") raise QueryTimeoutExceedException("Client timed out!") if ( self.process.returncode != 0 or self.remove_trash_from_stderr(stderr) ) and not self.ignore_error: > raise QueryRuntimeException( "Client failed! Return code: {}, stderr: {}".format( self.process.returncode, stderr ), self.process.returncode, stderr, ) E helpers.client.QueryRuntimeException: Client failed! Return code: 36, stderr: Received exception from server (version 23.8.16): E Code: 36. DB::Exception: Received from 172.16.4.6:9000. DB::Exception: All arguments of table function 'generateRandom' except structure argument must be literals. Got '_CAST(NULL, 'Nullable(Nothing)')' instead. Stack trace: E E 0. ./build_docker/./contrib/llvm-project/libcxx/include/exception:134: Poco::Exception::Exception(String const&, int) @ 0x000000003e024ad3 in /usr/bin/clickhouse E 1. ./build_docker/./src/Common/Exception.cpp:98: DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000001d5b7590 in /usr/bin/clickhouse E 2. DB::Exception::Exception(int, FormatStringHelperImpl::type, std::type_identity::type>, String&&, String&&) @ 0x000000000bd745d6 in /usr/bin/clickhouse E 3. ./build_docker/./src/TableFunctions/TableFunctionGenerateRandom.cpp:64: DB::TableFunctionGenerateRandom::parseArguments(std::shared_ptr const&, std::shared_ptr) @ 0x000000002d14865b in /usr/bin/clickhouse E 4. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:0: DB::(anonymous namespace)::QueryAnalyzer::resolveTableFunction(std::shared_ptr&, DB::(anonymous namespace)::IdentifierResolveScope&, DB::(anonymous namespace)::QueryExpressionsAliasVisitor&, bool) @ 0x00000000312293c2 in /usr/bin/clickhouse E 5. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:0: DB::(anonymous namespace)::QueryAnalyzer::resolveQueryJoinTreeNode(std::shared_ptr&, DB::(anonymous namespace)::IdentifierResolveScope&, DB::(anonymous namespace)::QueryExpressionsAliasVisitor&) @ 0x000000003122fbd6 in /usr/bin/clickhouse E 6. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:6965: DB::(anonymous namespace)::QueryAnalyzer::resolveQuery(std::shared_ptr const&, DB::(anonymous namespace)::IdentifierResolveScope&) @ 0x000000003120a987 in /usr/bin/clickhouse E 7. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:5583: DB::(anonymous namespace)::QueryAnalyzer::resolveExpressionNode(std::shared_ptr&, DB::(anonymous namespace)::IdentifierResolveScope&, bool, bool) @ 0x000000003121fc44 in /usr/bin/clickhouse E 8. ./build_docker/./contrib/llvm-project/libcxx/include/vector:580: DB::(anonymous namespace)::QueryAnalyzer::resolveQueryJoinTreeNode(std::shared_ptr&, DB::(anonymous namespace)::IdentifierResolveScope&, DB::(anonymous namespace)::QueryExpressionsAliasVisitor&) @ 0x000000003122fa4c in /usr/bin/clickhouse E 9. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:6965: DB::(anonymous namespace)::QueryAnalyzer::resolveQuery(std::shared_ptr const&, DB::(anonymous namespace)::IdentifierResolveScope&) @ 0x000000003120a987 in /usr/bin/clickhouse E 10. ./build_docker/./src/Analyzer/Passes/QueryAnalysisPass.cpp:0: DB::QueryAnalysisPass::run(std::shared_ptr, std::shared_ptr) @ 0x0000000031204d56 in /usr/bin/clickhouse E 11. ./build_docker/./src/Analyzer/QueryTreePassManager.cpp:183: DB::QueryTreePassManager::run(std::shared_ptr) @ 0x00000000311ffe68 in /usr/bin/clickhouse E 12. ./build_docker/./src/Interpreters/InterpreterSelectQueryAnalyzer.cpp:0: DB::(anonymous namespace)::buildQueryTreeAndRunPasses(std::shared_ptr const&, DB::SelectQueryOptions const&, std::shared_ptr const&, std::shared_ptr const&) @ 0x00000000315e7c52 in /usr/bin/clickhouse E 13. ./build_docker/./src/Interpreters/InterpreterSelectQueryAnalyzer.cpp:161: DB::InterpreterSelectQueryAnalyzer::InterpreterSelectQueryAnalyzer(std::shared_ptr const&, std::shared_ptr const&, DB::SelectQueryOptions const&) @ 0x00000000315e3c69 in /usr/bin/clickhouse E 14. ./build_docker/./contrib/llvm-project/libcxx/include/__memory/shared_ptr.h:701: DB::InterpreterInsertQuery::execute() @ 0x00000000314985dc in /usr/bin/clickhouse E 15. ./build_docker/./src/Interpreters/executeQuery.cpp:0: DB::executeQueryImpl(char const*, char const*, std::shared_ptr, bool, DB::QueryProcessingStage::Enum, DB::ReadBuffer*) @ 0x00000000320d91bd in /usr/bin/clickhouse E 16. ./build_docker/./src/Interpreters/executeQuery.cpp:1224: DB::executeQuery(String const&, std::shared_ptr, bool, DB::QueryProcessingStage::Enum) @ 0x00000000320cff81 in /usr/bin/clickhouse E 17. ./build_docker/./src/Server/TCPHandler.cpp:0: DB::TCPHandler::runImpl() @ 0x0000000034ec12bd in /usr/bin/clickhouse E 18. ./build_docker/./src/Server/TCPHandler.cpp:2161: DB::TCPHandler::run() @ 0x0000000034efe0b0 in /usr/bin/clickhouse E 19. ./build_docker/./base/poco/Net/src/TCPServerConnection.cpp:57: Poco::Net::TCPServerConnection::start() @ 0x000000003dc58e2f in /usr/bin/clickhouse E 20. ./build_docker/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:48: Poco::Net::TCPServerDispatcher::run() @ 0x000000003dc59bf7 in /usr/bin/clickhouse E 21. ./build_docker/./base/poco/Foundation/src/ThreadPool.cpp:0: Poco::PooledThread::run() @ 0x000000003e13941c in /usr/bin/clickhouse E 22. ./build_docker/./base/poco/Foundation/src/Thread_POSIX.cpp:0: Poco::ThreadImpl::runnableEntry(void*) @ 0x000000003e1324c8 in /usr/bin/clickhouse E 23. ? @ 0x00007fe35d2b8a83 in ? E 24. ? @ 0x00007fe35d34a8e0 in ? E . (BAD_ARGUMENTS) E (query: INSERT INTO central_query_log E SELECT E control_plane_id, E pod_id, E toStartOfHour(event_time) + toIntervalSecond(randUniform(0,60)) as scrape_ts_microseconds, E toDate(event_time) as event_date, E event_time, E payload, E payload[1] as payload_01, E payload[2] as payload_02, E payload[3] as payload_03, E payload[4] as payload_04, E payload[5] as payload_05, E payload[6] as payload_06, E payload[7] as payload_07, E payload[8] as payload_08, E payload[9] as payload_09, E payload[10] as payload_10, E payload[11] as payload_11, E payload[12] as payload_12, E payload[13] as payload_13, E payload[14] as payload_14, E payload[15] as payload_15, E payload[16] as payload_16, E payload[17] as payload_17, E payload[18] as payload_18, E payload[19] as payload_19 E FROM E ( E SELECT E control_plane_id, E substring(payload[1], 1, 5) as pod_id, E toDateTime('2022-12-12 00:00:00') E + toIntervalDay(floor(randUniform(0,3))) E + toIntervalHour(floor(randUniform(0,24))) E + toIntervalSecond(floor(randUniform(0,60))) E as event_time, E payload E FROM E generateRandom( E 'control_plane_id UUID, payload Array(String)', E NULL, E 100, E 100 E ) E LIMIT 10000 E ) E SETTINGS E max_insert_block_size=256000000, E min_insert_block_size_rows=1000000, E min_insert_block_size_bytes=256000000 E ) helpers/client.py:239: QueryRuntimeException ---------------------------- Captured stdout setup ----------------------------- Copy common default production configuration from /clickhouse-config. Files: config.xml, users.xml Copy common default production configuration from /clickhouse-config. Files: config.xml, users.xml ---------------------------- Captured stderr setup ----------------------------- WARNING: API is accessible on http://0.0.0.0:2375 without encryption. Access to the remote API is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' section in the documentation for more information: https://docs.docker.com/go/attack-surface/ WARNING: API is accessible on http://0.0.0.0:2375 without encryption. Access to the remote API is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' section in the documentation for more information: https://docs.docker.com/go/attack-surface/ ------------------------------ Captured log setup ------------------------------ 2026-10-27 17:53:43 [ 397 ] DEBUG : Command:['docker ps | wc -l'] (cluster.py:105, run_and_check) 2026-10-27 17:53:43 [ 397 ] DEBUG : Stdout:1 (cluster.py:113, run_and_check) 2026-10-27 17:53:43 [ 397 ] DEBUG : No running containers (conftest.py:60, cleanup_environment) 2026-10-27 17:53:43 [ 397 ] DEBUG : Pruning Docker networks (conftest.py:62, cleanup_environment) 2026-10-27 17:53:43 [ 397 ] DEBUG : Command:['docker network prune --force'] (cluster.py:105, run_and_check) 2026-10-27 17:53:43 [ 397 ] DEBUG : Command:["sysctl net.ipv4.ip_local_port_range='55000 65535'"] (cluster.py:105, run_and_check) 2026-10-27 17:53:43 [ 397 ] DEBUG : Stdout:net.ipv4.ip_local_port_range = 55000 65535 (cluster.py:113, run_and_check) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_KERBEROS_KDC_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_TESTS_SERVER_BIN_PATH /clickhouse (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV MSAN_OPTIONS abort_on_error=1 poison_in_dtor=1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV JAVA_TOOL_OPTIONS -Djdk.attach.allowAttachSelf=true (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV TSAN_OPTIONS halt_on_error=1 abort_on_error=1 history_size=7 memory_limit_mb=46080 second_deadlock_stack=1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV HOSTNAME 414af002cb1a (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV SHLVL 0 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV HOME /root (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV OLDPWD / (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_HELPER_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTHONUNBUFFERED 1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV UBSAN_OPTIONS print_stacktrace=1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTEST_ADDOPTS --dist=loadfile -n 5 -rfEps --run-id=1 --color=no --durations=0 test_library_bridge/test_exiled.py::test_bridge_dies_with_parent test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 'test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node]' 'test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node]' test_postgresql_protocol/test.py::test_python_client -vvv (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_LIBRARY_BRIDGE_BINARY_PATH /clickhouse-library-bridge (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV COMPOSE_HTTP_TIMEOUT 600 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_MYSQL_PHP_CLIENT_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_DOTNET_CLIENT_TAG latest (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_TESTS_CLIENT_BIN_PATH /clickhouse (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_MYSQL_JS_CLIENT_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PATH /spark-3.3.2-bin-hadoop3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_KERBERIZED_HADOOP_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_CHANNEL stable (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_CLIENT_TIMEOUT 300 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_POSTGRESQL_JAVA_CLIENT_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_NGINX_DAV_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_MYSQL_GOLANG_CLIENT_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_USE_NEW_ANALYZER 1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PWD /ClickHouse/tests/integration (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_MYSQL_JAVA_CLIENT_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_ODBC_BRIDGE_BINARY_PATH /clickhouse-odbc-bridge (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV CLICKHOUSE_TESTS_BASE_CONFIG_DIR /clickhouse-config (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV TZ Etc/UTC (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV JAVA_PATH /usr/lib/jvm/java-11-openjdk-amd64/bin/java (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV DOCKER_BASE_TAG 1864 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV SPARK_HOME /spark-3.3.2-bin-hadoop3 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV LC_CTYPE C.UTF-8 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV INTEGRATION_TESTS_RUN_ID 1 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTEST_XDIST_TESTRUNUID 20346d9605fd421fb1b2f724caafe9d6 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTEST_XDIST_WORKER gw0 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTEST_XDIST_WORKER_COUNT 5 (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : ENV PYTEST_CURRENT_TEST test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] (setup) (cluster.py:343, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : CLUSTER INIT base_config_dir:/clickhouse-config (cluster.py:636, __init__) 2026-10-27 17:53:43 [ 397 ] DEBUG : clickhouse_start_command: clickhouse server --config-file=/etc/clickhouse-server/{main_config_file} --log-file=/var/log/clickhouse-server/clickhouse-server.log --errorlog-file=/var/log/clickhouse-server/clickhouse-server.err.log (cluster.py:1629, add_instance) 2026-10-27 17:53:43 [ 397 ] DEBUG : Cluster name: project_name:roottestmergetrees3. Added instance name:node tag:1864 base_cmd:['docker-compose', '--env-file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', '--project-name', 'roottestmergetrees3', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/docker-compose.yml', '--file', '/compose/docker_compose_minio.yml'] docker_compose_yml_dir:/compose (cluster.py:1915, add_instance) 2026-10-27 17:53:43 [ 397 ] DEBUG : clickhouse_start_command: clickhouse server --config-file=/etc/clickhouse-server/{main_config_file} --log-file=/var/log/clickhouse-server/clickhouse-server.log --errorlog-file=/var/log/clickhouse-server/clickhouse-server.err.log (cluster.py:1629, add_instance) 2026-10-27 17:53:43 [ 397 ] DEBUG : Cluster name: project_name:roottestmergetrees3. Added instance name:node_with_limited_disk tag:1864 base_cmd:['docker-compose', '--env-file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', '--project-name', 'roottestmergetrees3', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/docker-compose.yml', '--file', '/compose/docker_compose_minio.yml', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/docker-compose.yml'] docker_compose_yml_dir:/compose (cluster.py:1915, add_instance) 2026-10-27 17:53:43 [ 397 ] INFO : Starting cluster... (test.py:47, cluster) 2026-10-27 17:53:43 [ 397 ] INFO : Running tests in /ClickHouse/tests/integration/test_merge_tree_s3/test.py (cluster.py:2637, start) 2026-10-27 17:53:43 [ 397 ] DEBUG : Cluster start called. is_up=False (cluster.py:2644, start) 2026-10-27 17:53:43 [ 397 ] DEBUG : !!! Docker info: Client: Docker Engine - Community Version: 29.9.2 Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.38.1 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v5.6.1 Path: /usr/libexec/docker/cli-plugins/docker-compose Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 41 Server Version: 23.0.6 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Using metacopy: false Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 2 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 runc Default Runtime: runc Init Binary: docker-init containerd version: b7a25261e029d68978bbf290df0a62fc819b3c51 runc version: v1.5.2-0-g29dd3dc2 init version: de40ad0 Security Options: seccomp Profile: builtin cgroupns Kernel Version: 5.15.0-130-generic Operating System: Ubuntu 22.04.5 LTS (containerized) OSType: linux Architecture: x86_64 CPUs: 16 Total Memory: 30.59GiB Name: 414af002cb1a ID: aad64ef0-0fd2-4637-a8d8-af11afa93423 Docker Root Dir: /var/lib/docker Debug Mode: false Experimental: false Insecure Registries: 65.108.242.32:5000 127.0.0.0/8 Registry Mirrors: http://65.108.242.32:5000/ Live Restore Enabled: false Default Address Pools: Base: 172.17.0.0/12, Size: 24 (cluster.py:722, print_all_docker_pieces) 2026-10-27 17:53:43 [ 397 ] DEBUG : Docker networks for project roottestmergetrees3 are NETWORK ID NAME DRIVER SCOPE (cluster.py:733, print_all_docker_pieces) 2026-10-27 17:53:43 [ 397 ] DEBUG : Docker containers for project roottestmergetrees3 are CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES (cluster.py:741, print_all_docker_pieces) 2026-10-27 17:53:43 [ 397 ] DEBUG : Docker volumes for project roottestmergetrees3 are DRIVER VOLUME NAME (cluster.py:749, print_all_docker_pieces) 2026-10-27 17:53:43 [ 397 ] DEBUG : Cleanup called (cluster.py:754, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : !!! Docker info: Client: Docker Engine - Community Version: 29.9.2 Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.38.1 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v5.6.1 Path: /usr/libexec/docker/cli-plugins/docker-compose Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 41 Server Version: 23.0.6 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Using metacopy: false Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 2 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 runc Default Runtime: runc Init Binary: docker-init containerd version: b7a25261e029d68978bbf290df0a62fc819b3c51 runc version: v1.5.2-0-g29dd3dc2 init version: de40ad0 Security Options: seccomp Profile: builtin cgroupns Kernel Version: 5.15.0-130-generic Operating System: Ubuntu 22.04.5 LTS (containerized) OSType: linux Architecture: x86_64 CPUs: 16 Total Memory: 30.59GiB Name: 414af002cb1a ID: aad64ef0-0fd2-4637-a8d8-af11afa93423 Docker Root Dir: /var/lib/docker Debug Mode: false Experimental: false Insecure Registries: 65.108.242.32:5000 127.0.0.0/8 Registry Mirrors: http://65.108.242.32:5000/ Live Restore Enabled: false Default Address Pools: Base: 172.17.0.0/12, Size: 24 (cluster.py:722, print_all_docker_pieces) 2026-10-27 17:53:44 [ 397 ] DEBUG : Docker networks for project roottestmergetrees3 are NETWORK ID NAME DRIVER SCOPE (cluster.py:733, print_all_docker_pieces) 2026-10-27 17:53:44 [ 397 ] DEBUG : Docker containers for project roottestmergetrees3 are CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES (cluster.py:741, print_all_docker_pieces) 2026-10-27 17:53:44 [ 397 ] DEBUG : Docker volumes for project roottestmergetrees3 are DRIVER VOLUME NAME (cluster.py:749, print_all_docker_pieces) 2026-10-27 17:53:44 [ 397 ] DEBUG : Command:docker container list --all --filter name='^/roottestmergetrees3_.*_1$' --format '{{.ID}}:{{.Names}}' (cluster.py:105, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Unstopped containers: {} (cluster.py:768, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : No running containers for project: roottestmergetrees3 (cluster.py:782, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : Trying to prune unused networks... (cluster.py:788, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : Trying to prune unused images... (cluster.py:804, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : Command:['docker', 'image', 'prune', '-f'] (cluster.py:105, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Stderr:Error response from daemon: a prune operation is already running (cluster.py:115, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Exitcode:1 (cluster.py:117, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Trying to prune unused volumes... (cluster.py:813, cleanup) 2026-10-27 17:53:44 [ 397 ] DEBUG : Command:['docker volume ls | wc -l'] (cluster.py:105, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Stdout:1 (cluster.py:113, run_and_check) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup directory for instance: node (cluster.py:2657, start) 2026-10-27 17:53:44 [ 397 ] DEBUG : Create directory for configuration generated in this helper (cluster.py:4309, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Create directory for common tests configuration (cluster.py:4314, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Copy common configuration from helpers (cluster.py:4334, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Generate and write macros file (cluster.py:4353, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Copy custom test config files ['/ClickHouse/tests/integration/test_merge_tree_s3/configs/config.xml', '/ClickHouse/tests/integration/test_merge_tree_s3/configs/config.d/storage_conf.xml', '/ClickHouse/tests/integration/test_merge_tree_s3/configs/config.d/bg_processing_pool_conf.xml'] to /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/configs/config.d (cluster.py:4383, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup database dir /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/database (cluster.py:4400, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup logs dir /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/logs (cluster.py:4411, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Entrypoint cmd: bash -c "trap 'pkill tail' INT TERM; clickhouse server --config-file=/etc/clickhouse-server/config.xml --log-file=/var/log/clickhouse-server/clickhouse-server.log --errorlog-file=/var/log/clickhouse-server/clickhouse-server.err.log --daemon; coproc tail -f /dev/null; wait $$!" (cluster.py:4487, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup directory for instance: node_with_limited_disk (cluster.py:2657, start) 2026-10-27 17:53:44 [ 397 ] DEBUG : Create directory for configuration generated in this helper (cluster.py:4309, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Create directory for common tests configuration (cluster.py:4314, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Copy common configuration from helpers (cluster.py:4334, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Generate and write macros file (cluster.py:4353, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Copy custom test config files ['/ClickHouse/tests/integration/test_merge_tree_s3/configs/config.d/storage_conf.xml', '/ClickHouse/tests/integration/test_merge_tree_s3/configs/config.d/bg_processing_pool_conf.xml'] to /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/configs/config.d (cluster.py:4383, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup database dir /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/database (cluster.py:4400, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Setup logs dir /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/logs (cluster.py:4411, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Entrypoint cmd: ["clickhouse", "server", "--config-file=/etc/clickhouse-server/config.xml", "--log-file=/var/log/clickhouse-server/clickhouse-server.log", "--errorlog-file=/var/log/clickhouse-server/clickhouse-server.err.log"] (cluster.py:4487, create_dir) 2026-10-27 17:53:44 [ 397 ] DEBUG : Env {'ASAN_OPTIONS': 'use_sigaltstack=0', 'TSAN_OPTIONS': 'use_sigaltstack=0', 'CLICKHOUSE_WATCHDOG_ENABLE': '0', 'CLICKHOUSE_NATS_TLS_SECURE': '0', 'LLVM_PROFILE_FILE': '/var/lib/clickhouse/server_%h_%p_%m.profraw', 'MINIO_CERTS_DIR': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/certs', 'MINIO_DATA_DIR': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/data', 'MINIO_PORT': '9001', 'SSL_CERT_FILE': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/certs/public.crt'} stored in /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env (cluster.py:78, _create_env_file) 2026-10-27 17:53:44 [ 397 ] DEBUG : Trying paths: ['/root/.docker/config.json', '/root/.dockercfg'] (config.py:21, find_config_file) 2026-10-27 17:53:44 [ 397 ] DEBUG : No config file found (config.py:28, find_config_file) 2026-10-27 17:53:44 [ 397 ] DEBUG : Trying paths: ['/root/.docker/config.json', '/root/.dockercfg'] (config.py:21, find_config_file) 2026-10-27 17:53:44 [ 397 ] DEBUG : No config file found (config.py:28, find_config_file) 2026-10-27 17:53:44 [ 397 ] DEBUG : http://localhost:None "GET /version HTTP/1.1" 200 825 (connectionpool.py:546, _make_request) 2026-10-27 17:53:44 [ 397 ] DEBUG : Command:['docker-compose', '--env-file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', '--project-name', 'roottestmergetrees3', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/docker-compose.yml', '--file', '/compose/docker_compose_minio.yml', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/docker-compose.yml', 'pull'] (cluster.py:105, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy2 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling resolver ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling minio1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node_with_limited_disk ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node ... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling resolver ... pulling from altinityinfra/python... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy1 ... pulling from altinityinfra/s3-proxy (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling resolver ... digest: sha256:5a7a0ebe149009e702... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling resolver ... status: image is up to date for a... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy1 ... digest: sha256:1a92e43060168b5557... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy1 ... status: image is up to date for a... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling resolver ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling minio1 ... pulling from clickhouse/minio-minio (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node_with_limited_disk ... pulling from altinityinfra/integr... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy2 ... pulling from altinityinfra/s3-proxy (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling minio1 ... digest: sha256:9eea83a4e1425067e7... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling minio1 ... status: image is up to date for c... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy2 ... digest: sha256:1a92e43060168b5557... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy2 ... status: image is up to date for a... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling minio1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling proxy2 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node_with_limited_disk ... digest: sha256:45997363e17ff1831d... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node_with_limited_disk ... status: image is up to date for a... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node_with_limited_disk ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node ... pulling from altinityinfra/integr... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node ... digest: sha256:45997363e17ff1831d... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node ... status: image is up to date for a... (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] DEBUG : Stderr:Pulling node ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:05 [ 397 ] INFO : Trying to create Minio instance by command docker-compose --env-file /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env --project-name roottestmergetrees3 --file /compose/docker_compose_minio.yml --verbose up -d (cluster.py:2938, start) 2026-10-27 17:54:05 [ 397 ] DEBUG : Command:['docker-compose', '--env-file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', '--project-name', 'roottestmergetrees3', '--file', '/compose/docker_compose_minio.yml', '--verbose', 'up', '-d'] (cluster.py:105, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.config.config.find: Using configuration files: /compose/docker_compose_minio.yml (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.docker_client.get_client: docker-compose version 1.29.2, build unknown (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:docker-py version: (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:CPython version: 3.10.12 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:OpenSSL version: OpenSSL 3.0.2 15 Mar 2022 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.docker_client.get_client: Docker base_url: http+docker://localhost (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.docker_client.get_client: Docker version: Platform={'Name': 'Docker Engine - Community'}, Components=[{'Name': 'Engine', 'Version': '23.0.6', 'Details': {'ApiVersion': '1.42', 'Arch': 'amd64', 'BuildTime': '2023-05-05T21:18:13.000000000+00:00', 'Experimental': 'false', 'GitCommit': '9dbdbd4', 'GoVersion': 'go1.19.9', 'KernelVersion': '5.15.0-130-generic', 'MinAPIVersion': '1.12', 'Os': 'linux'}}, {'Name': 'containerd', 'Version': 'v2.4.2', 'Details': {'GitCommit': 'b7a25261e029d68978bbf290df0a62fc819b3c51'}}, {'Name': 'runc', 'Version': '1.5.2', 'Details': {'GitCommit': 'v1.5.2-0-g29dd3dc2'}}, {'Name': 'docker-init', 'Version': '0.19.0', 'Details': {'GitCommit': 'de40ad0'}}], Version=23.0.6, ApiVersion=1.42, MinAPIVersion=1.12, GitCommit=9dbdbd4, GoVersion=go1.19.9, Os=linux, Arch=amd64, KernelVersion=5.15.0-130-generic, BuildTime=2023-05-05T21:18:13.000000000+00:00 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_volume <- ('roottestmergetrees3_data1-1') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker info <- () (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker info -> {'Architecture': 'x86_64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'BridgeNfIp6tables': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'BridgeNfIptables': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'CPUSet': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'CPUShares': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'CgroupDriver': 'cgroupfs', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'CgroupVersion': '2', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'ContainerdCommit': {'Expected': 'b7a25261e029d68978bbf290df0a62fc819b3c51', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'ID': 'b7a25261e029d68978bbf290df0a62fc819b3c51'}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Containers': 3, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.network.ensure: Creating network "roottestmergetrees3_default" with the default driver (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_network <- (name='roottestmergetrees3_default', driver=None, options=None, ipam=None, internal=False, enable_ipv6=False, labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.network': 'default', 'com.docker.compose.version': '1.29.2'}, attachable=True, check_duplicate=True) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_network -> {'Id': 'e799bf1c348010c10190d49f8d63bf369ea3c9e0d132fa425f7b7bf845e6352c', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Warning': ''} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_volume <- ('roottestmergetrees3_data1-1') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.volume.initialize: Creating volume "roottestmergetrees3_data1-1" with default driver (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_volume <- ('roottestmergetrees3_data1-1', None, None, labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.volume': 'data1-1', 'com.docker.compose.version': '1.29.2'}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_volume -> {'CreatedAt': '2026-10-27T17:54:05Z', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Driver': 'local', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Labels': {'com.docker.compose.project': 'roottestmergetrees3', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'com.docker.compose.version': '1.29.2', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'com.docker.compose.volume': 'data1-1'}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Mountpoint': '/var/lib/docker/volumes/roottestmergetrees3_data1-1/_data', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Name': 'roottestmergetrees3_data1-1', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Options': None, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Scope': 'local'} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('clickhouse/minio-minio:RELEASE.2024-07-31T05-46-26Z') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['minio'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/usr/bin/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/python-bottle') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['python3'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': None, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.project._get_convergence_plans: minio1 has upstream changes (proxy1, proxy2) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.project._get_convergence_plans: resolver has upstream changes (proxy1, proxy2) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, , , } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy2', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=proxy1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_proxy2_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {ServiceName(project='roottestmergetrees3', service='proxy2', number=1)} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for ServiceName(project='roottestmergetrees3', service='proxy2', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_proxy1_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {ServiceName(project='roottestmergetrees3', service='proxy1', number=1)} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for ServiceName(project='roottestmergetrees3', service='proxy1', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/s3-proxy') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.service.build_container_labels: Added config hash: 69464aa63230d7cf98c2854eb356d2271008cdcc3ed2260f60c6940b4fa24b37 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={}, binds=[], volumes_from=[], privileged=False, network_mode='roottestmergetrees3_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy=None, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Links': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'LogConfig': {'Config': {}, 'Type': ''}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NetworkMode': 'roottestmergetrees3_default', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'PortBindings': {}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'VolumesFrom': []} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container <- (image='altinityinfra/s3-proxy', volumes={}, name='roottestmergetrees3_proxy2_1', detach=True, ports=['8080', '80', '443'], environment=[], labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.service': 'proxy2', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/compose', 'com.docker.compose.project.config_files': '/compose/docker_compose_minio.yml', 'com.docker.compose.project.environment_file': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': '69464aa63230d7cf98c2854eb356d2271008cdcc3ed2260f60c6940b4fa24b37'}, host_config={'NetworkMode': 'roottestmergetrees3_default', 'VolumesFrom': [], 'Binds': [], 'PortBindings': {}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'roottestmergetrees3_default': {'Aliases': ['proxy2'], 'IPAMConfig': {}}}}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.service.build_container_labels: Added config hash: 69464aa63230d7cf98c2854eb356d2271008cdcc3ed2260f60c6940b4fa24b37 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={}, binds=[], volumes_from=[], privileged=False, network_mode='roottestmergetrees3_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy=None, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Links': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'LogConfig': {'Config': {}, 'Type': ''}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NetworkMode': 'roottestmergetrees3_default', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'PortBindings': {}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'VolumesFrom': []} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container <- (image='altinityinfra/s3-proxy', volumes={}, name='roottestmergetrees3_proxy1_1', detach=True, ports=['8080', '80', '443'], environment=[], labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.service': 'proxy1', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/compose', 'com.docker.compose.project.config_files': '/compose/docker_compose_minio.yml', 'com.docker.compose.project.environment_file': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': '69464aa63230d7cf98c2854eb356d2271008cdcc3ed2260f60c6940b4fa24b37'}, host_config={'NetworkMode': 'roottestmergetrees3_default', 'VolumesFrom': [], 'Binds': [], 'PortBindings': {}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'roottestmergetrees3_default': {'Aliases': ['proxy1'], 'IPAMConfig': {}}}}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': '0acbf4654645cb5c83b8995bef604d46c7ac08ceb20be9abbdf37e2b4feab25f', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Warnings': ["The requested image's platform (linux/arm64/v8) does not match " (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'the detected host platform (linux/amd64/v4) and no specific ' (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'platform was requested']} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('0acbf4654645cb5c83b8995bef604d46c7ac08ceb20be9abbdf37e2b4feab25f') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': 'b9bd56cfcd44113d7f6154d79515c6f0c032640e79617904bd128e022b48e102', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Warnings': ["The requested image's platform (linux/arm64/v8) does not match " (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'the detected host platform (linux/amd64/v4) and no specific ' (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'platform was requested']} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('b9bd56cfcd44113d7f6154d79515c6f0c032640e79617904bd128e022b48e102') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Args': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NGINX_VERSION=1.31.8', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('b9bd56cfcd44113d7f6154d79515c6f0c032640e79617904bd128e022b48e102', 'roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Args': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['/run.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NGINX_VERSION=1.31.8', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('0acbf4654645cb5c83b8995bef604d46c7ac08ceb20be9abbdf37e2b4feab25f', 'roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('0acbf4654645cb5c83b8995bef604d46c7ac08ceb20be9abbdf37e2b4feab25f', 'roottestmergetrees3_default', aliases=['proxy1', '0acbf4654645'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('b9bd56cfcd44113d7f6154d79515c6f0c032640e79617904bd128e022b48e102', 'roottestmergetrees3_default', aliases=['b9bd56cfcd44', 'proxy2'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start <- ('0acbf4654645cb5c83b8995bef604d46c7ac08ceb20be9abbdf37e2b4feab25f') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start <- ('b9bd56cfcd44113d7f6154d79515c6f0c032640e79617904bd128e022b48e102') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='roottestmergetrees3', service='proxy1', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_proxy1_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='roottestmergetrees3', service='proxy2', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_proxy2_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {, } (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=minio1', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=roottestmergetrees3', 'com.docker.compose.service=resolver', 'com.docker.compose.oneoff=False']}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_minio1_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {ServiceName(project='roottestmergetrees3', service='minio1', number=1)} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for ServiceName(project='roottestmergetrees3', service='minio1', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('clickhouse/minio-minio:RELEASE.2024-07-31T05-46-26Z') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_resolver_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: {ServiceName(project='roottestmergetrees3', service='resolver', number=1)} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Starting producer thread for ServiceName(project='roottestmergetrees3', service='resolver', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/python-bottle') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['minio'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/usr/bin/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('clickhouse/minio-minio:RELEASE.2024-07-31T05-46-26Z') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'ArgsEscaped': True, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['minio'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': ['/usr/bin/docker-entrypoint.sh'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.service.build_container_labels: Added config hash: f96a516bbb371c59cc2dee5f7f949f3642c8704a045caa2cf8dba622b3fd2b18 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={}, binds=['roottestmergetrees3_data1-1:/data1:rw', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/certs:/certs:rw'], volumes_from=[], privileged=False, network_mode='roottestmergetrees3_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy=None, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': ['roottestmergetrees3_data1-1:/data1:rw', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/certs:/certs:rw'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Links': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'LogConfig': {'Config': {}, 'Type': ''}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NetworkMode': 'roottestmergetrees3_default', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'PortBindings': {}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'VolumesFrom': []} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container <- (command='server --console-address 127.0.0.1:19001 --address :9001 --certs-dir /certs /data1-1', environment=['MINIO_ACCESS_KEY=minio', 'MINIO_SECRET_KEY=minio123', 'MINIO_PROMETHEUS_AUTH_TYPE=public'], image='clickhouse/minio-minio:RELEASE.2024-07-31T05-46-26Z', volumes={'/data1': {}, '/certs': {}}, name='roottestmergetrees3_minio1_1', detach=True, ports=['9001'], labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.service': 'minio1', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/compose', 'com.docker.compose.project.config_files': '/compose/docker_compose_minio.yml', 'com.docker.compose.project.environment_file': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': 'f96a516bbb371c59cc2dee5f7f949f3642c8704a045caa2cf8dba622b3fd2b18'}, host_config={'NetworkMode': 'roottestmergetrees3_default', 'VolumesFrom': [], 'Binds': ['roottestmergetrees3_data1-1:/data1:rw', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/minio/certs:/certs:rw'], 'PortBindings': {}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'roottestmergetrees3_default': {'Aliases': ['minio1'], 'IPAMConfig': {}}}}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['python3'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': None, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('altinityinfra/python-bottle') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'arm64', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Author': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Comment': 'buildkit.dockerfile.v0', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['python3'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': None, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.service.build_container_labels: Added config hash: b63ae4ac0bd52b68b87e99c0a2e9c7944503b12c70558143d12d27a9f48f2fa0 (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={}, binds=[], volumes_from=[], privileged=False, network_mode='roottestmergetrees3_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy=None, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Links': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'LogConfig': {'Config': {}, 'Type': ''}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'NetworkMode': 'roottestmergetrees3_default', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'PortBindings': {}, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'VolumesFrom': []} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container <- (image='altinityinfra/python-bottle', tty=True, volumes={}, name='roottestmergetrees3_resolver_1', detach=True, ports=['8080'], environment=[], labels={'com.docker.compose.project': 'roottestmergetrees3', 'com.docker.compose.service': 'resolver', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/compose', 'com.docker.compose.project.config_files': '/compose/docker_compose_minio.yml', 'com.docker.compose.project.environment_file': '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': 'b63ae4ac0bd52b68b87e99c0a2e9c7944503b12c70558143d12d27a9f48f2fa0'}, host_config={'NetworkMode': 'roottestmergetrees3_default', 'VolumesFrom': [], 'Binds': [], 'PortBindings': {}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'roottestmergetrees3_default': {'Aliases': ['resolver'], 'IPAMConfig': {}}}}) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': 'ef30c793992e8d802837fe61ffafae0a2c7051d223374740721ec97ac189ade2', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Warnings': ["The requested image's platform (linux/arm64/v8) does not match " (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'the detected host platform (linux/amd64/v4) and no specific ' (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'platform was requested']} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('ef30c793992e8d802837fe61ffafae0a2c7051d223374740721ec97ac189ade2') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': '88decca818ef600683ad7e03779f8abebf24e37e3779431849f113b8fc0943e8', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Warnings': []} (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('88decca818ef600683ad7e03779f8abebf24e37e3779431849f113b8fc0943e8') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Args': ['server', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '--console-address', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '127.0.0.1:19001', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '--address', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: ':9001', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '--certs-dir', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '/certs', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: '/data1-1'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('88decca818ef600683ad7e03779f8abebf24e37e3779431849f113b8fc0943e8', 'roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Args': [], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Config': {'AttachStderr': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdin': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'AttachStdout': False, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Cmd': ['python3'], (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Domainname': '', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Entrypoint': None, (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr: 'LANG=C.UTF-8', (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:... (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('ef30c793992e8d802837fe61ffafae0a2c7051d223374740721ec97ac189ade2', 'roottestmergetrees3_default') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('88decca818ef600683ad7e03779f8abebf24e37e3779431849f113b8fc0943e8', 'roottestmergetrees3_default', aliases=['minio1', '88decca818ef'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('ef30c793992e8d802837fe61ffafae0a2c7051d223374740721ec97ac189ade2', 'roottestmergetrees3_default', aliases=['resolver', 'ef30c793992e'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start <- ('88decca818ef600683ad7e03779f8abebf24e37e3779431849f113b8fc0943e8') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start <- ('ef30c793992e8d802837fe61ffafae0a2c7051d223374740721ec97ac189ade2') (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='roottestmergetrees3', service='minio1', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_minio1_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.cli.verbose_proxy.proxy_callable: docker start -> None (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='roottestmergetrees3', service='resolver', number=1) (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_resolver_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.parallel_execute_iter: Finished processing: (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] DEBUG : Stderr:compose.parallel.feed_queue: Pending: set() (cluster.py:115, run_and_check) 2026-10-27 17:54:07 [ 397 ] INFO : Trying to connect to Minio... (cluster.py:2944, start) 2026-10-27 17:54:07 [ 397 ] DEBUG : get_instance_ip instance_name=minio1 (cluster.py:1971, get_instance_ip) 2026-10-27 17:54:07 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_minio1_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:07 [ 397 ] DEBUG : get_instance_ip instance_name=proxy1 (cluster.py:1971, get_instance_ip) 2026-10-27 17:54:07 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_proxy1_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:07 [ 397 ] DEBUG : Starting new HTTP connection (1): 172.16.4.4:9001 (connectionpool.py:244, _new_conn) 2026-10-27 17:54:07 [ 397 ] DEBUG : Incremented Retry for (url='/'): Retry(total=2, connect=None, read=None, redirect=None, status=None) (retry.py:517, increment) 2026-10-27 17:54:07 [ 397 ] WARNING : Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': / (connectionpool.py:871, urlopen) 2026-10-27 17:54:07 [ 397 ] DEBUG : Starting new HTTP connection (2): 172.16.4.4:9001 (connectionpool.py:244, _new_conn) 2026-10-27 17:54:07 [ 397 ] DEBUG : Incremented Retry for (url='/'): Retry(total=1, connect=None, read=None, redirect=None, status=None) (retry.py:517, increment) 2026-10-27 17:54:07 [ 397 ] WARNING : Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': / (connectionpool.py:871, urlopen) 2026-10-27 17:54:07 [ 397 ] DEBUG : Starting new HTTP connection (3): 172.16.4.4:9001 (connectionpool.py:244, _new_conn) 2026-10-27 17:54:07 [ 397 ] DEBUG : Incremented Retry for (url='/'): Retry(total=0, connect=None, read=None, redirect=None, status=None) (retry.py:517, increment) 2026-10-27 17:54:07 [ 397 ] WARNING : Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': / (connectionpool.py:871, urlopen) 2026-10-27 17:54:07 [ 397 ] DEBUG : Starting new HTTP connection (4): 172.16.4.4:9001 (connectionpool.py:244, _new_conn) 2026-10-27 17:54:07 [ 397 ] DEBUG : Can't connect to Minio: HTTPConnectionPool(host='172.16.4.4', port=9001): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) (cluster.py:2521, wait_minio_to_start) 2026-10-27 17:54:08 [ 397 ] DEBUG : Starting new HTTP connection (5): 172.16.4.4:9001 (connectionpool.py:244, _new_conn) 2026-10-27 17:54:08 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET / HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:08 [ 397 ] DEBUG : Connected to Minio. (cluster.py:2501, wait_minio_to_start) 2026-10-27 17:54:08 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?location= HTTP/1.1" 404 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:08 [ 397 ] DEBUG : http://172.16.4.4:9001 "PUT /root HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:08 [ 397 ] DEBUG : S3 bucket 'root' created (cluster.py:2516, wait_minio_to_start) 2026-10-27 17:54:08 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root2?location= HTTP/1.1" 404 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:08 [ 397 ] DEBUG : http://172.16.4.4:9001 "PUT /root2 HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:08 [ 397 ] DEBUG : S3 bucket 'root2' created (cluster.py:2516, wait_minio_to_start) 2026-10-27 17:54:08 [ 397 ] DEBUG : ('Trying to create ClickHouse instance by command %s', 'docker-compose --env-file /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env --project-name roottestmergetrees3 --file /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/docker-compose.yml --file /compose/docker_compose_minio.yml --file /ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/docker-compose.yml up -d --no-recreate') (cluster.py:2980, start) 2026-10-27 17:54:08 [ 397 ] DEBUG : Command:['docker-compose', '--env-file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/.env', '--project-name', 'roottestmergetrees3', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node/docker-compose.yml', '--file', '/compose/docker_compose_minio.yml', '--file', '/ClickHouse/tests/integration/test_merge_tree_s3/_instances_1/node_with_limited_disk/docker-compose.yml', 'up', '-d', '--no-recreate'] (cluster.py:105, run_and_check) 2026-10-27 17:54:09 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_node_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:09 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_node_with_limited_disk_1 ... (cluster.py:115, run_and_check) 2026-10-27 17:54:09 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_node_with_limited_disk_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:09 [ 397 ] DEBUG : Stderr:Creating roottestmergetrees3_node_1 ... done (cluster.py:115, run_and_check) 2026-10-27 17:54:09 [ 397 ] DEBUG : ClickHouse instance created (cluster.py:2988, start) 2026-10-27 17:54:09 [ 397 ] DEBUG : get_instance_ip instance_name=node (cluster.py:1971, get_instance_ip) 2026-10-27 17:54:09 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_node_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:09 [ 397 ] DEBUG : Waiting for ClickHouse start in node, ip: 172.16.4.6... (cluster.py:2995, start) 2026-10-27 17:54:09 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_node_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:09 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:09 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:09 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:10 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:11 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/30e4b687e6c4de4bf55602b01e1d984d438de75c465a3871a9f57e0b8ce7ab3e/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:11 [ 397 ] DEBUG : ClickHouse node started (cluster.py:2999, start) 2026-10-27 17:54:11 [ 397 ] DEBUG : get_instance_ip instance_name=node_with_limited_disk (cluster.py:1971, get_instance_ip) 2026-10-27 17:54:11 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_node_with_limited_disk_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:11 [ 397 ] DEBUG : Waiting for ClickHouse start in node_with_limited_disk, ip: 172.16.4.7... (cluster.py:2995, start) 2026-10-27 17:54:11 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/roottestmergetrees3_node_with_limited_disk_1/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:11 [ 397 ] DEBUG : http://localhost:None "GET /v1.42/containers/335b2350085c424001ab2873c7e432e5ef9c87147e0291a9e55dd43ed65db18f/json HTTP/1.1" 200 None (connectionpool.py:546, _make_request) 2026-10-27 17:54:11 [ 397 ] DEBUG : ClickHouse node_with_limited_disk started (cluster.py:2999, start) 2026-10-27 17:54:11 [ 397 ] INFO : Cluster started (test.py:49, cluster) 2026-10-27 17:54:11 [ 397 ] INFO : Starting mock servers unstable_proxy.py,no_delete_objects.py (mock_servers.py:18, start_mock_servers) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:False cmd: ['bash', '-c', 'echo aW1wb3J0IGh0dHAuY2xpZW50CmltcG9ydCBodHRwLnNlcnZlcgppbXBvcnQgcmFuZG9tCmltcG9ydCBzb2NrZXRzZXJ2ZXIKaW1wb3J0IHN5cwppbXBvcnQgdXJsbGliLnBhcnNlCgoKVVBTVFJFQU1fSE9TVCA9ICJtaW5pbzE6OTAwMSIKcmFuZG9tLnNlZWQoIlVuc3RhYmxlIHByb3h5LzEuMCIpCgoKZGVmIHJlcXVlc3QoY29tbWFuZCwgdXJsLCBoZWFkZXJzPXt9LCBkYXRhPU5vbmUpOgogICAgIiIiTWluaS1yZXF1ZXN0cy4iIiIKCiAgICBjbGFzcyBEdW1teToKICAgICAgICBwYXNzCgogICAgcGFydHMgPSB1cmxsaWIucGFyc2UudXJscGFyc2UodXJsKQogICAgYyA9IGh0dHAuY2xpZW50LkhUVFBDb25uZWN0aW9uKHBhcnRzLmhvc3RuYW1lLCBwYXJ0cy5wb3J0KQogICAgYy5yZXF1ZXN0KAogICAgICAgIGNvbW1hbmQsCiAgICAgICAgdXJsbGliLnBhcnNlLnVybHVucGFyc2UocGFydHMuX3JlcGxhY2Uoc2NoZW1lPSIiLCBuZXRsb2M9IiIpKSwKICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCiAgICAgICAgYm9keT1kYXRhLAogICAgKQogICAgciA9IGMuZ2V0cmVzcG9uc2UoKQogICAgcmVzdWx0ID0gRHVtbXkoKQogICAgcmVzdWx0LnN0YXR1c19jb2RlID0gci5zdGF0dXMKICAgIHJlc3VsdC5oZWFkZXJzID0gci5oZWFkZXJzCiAgICByZXN1bHQuY29udGVudCA9IHIucmVhZCgpCiAgICByZXR1cm4gcmVzdWx0CgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fUFVUKHNlbGYpOgogICAgICAgIHNlbGYuZG9fSEVBRCgpCgogICAgZGVmIGRvX1BPU1Qoc2VsZik6CiAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IHNlbGYuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikKICAgICAgICBkYXRhID0gc2VsZi5yZmlsZS5yZWFkKGludChjb250ZW50X2xlbmd0aCkpIGlmIGNvbnRlbnRfbGVuZ3RoIGVsc2UgTm9uZQogICAgICAgIHIgPSByZXF1ZXN0KAogICAgICAgICAgICBzZWxmLmNvbW1hbmQsCiAgICAgICAgICAgIGYiaHR0cDovL3tVUFNUUkVBTV9IT1NUfXtzZWxmLnBhdGh9IiwKICAgICAgICAgICAgaGVhZGVycz1zZWxmLmhlYWRlcnMsCiAgICAgICAgICAgIGRhdGE9ZGF0YSwKICAgICAgICApCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKHIuc3RhdHVzX2NvZGUpCiAgICAgICAgZm9yIGssIHYgaW4gci5oZWFkZXJzLml0ZW1zKCk6CiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoaywgdikKICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKICAgICAgICBpZiByYW5kb20ucmFuZG9tKCkgPCAwLjI1IGFuZCBsZW4oci5jb250ZW50KSA+IDEwMjQgKiAxMDI0OgogICAgICAgICAgICByLmNvbnRlbnQgPSByLmNvbnRlbnRbOiBsZW4oci5jb250ZW50KSAvLyAyXQogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoci5jb250ZW50KQogICAgICAgIHNlbGYud2ZpbGUuY2xvc2UoKQoKCmNsYXNzIFRocmVhZGVkSFRUUFNlcnZlcihzb2NrZXRzZXJ2ZXIuVGhyZWFkaW5nTWl4SW4sIGh0dHAuc2VydmVyLkhUVFBTZXJ2ZXIpOgogICAgIiIiSGFuZGxlIHJlcXVlc3RzIGluIGEgc2VwYXJhdGUgdGhyZWFkLiIiIgoKCmh0dHBkID0gVGhyZWFkZWRIVFRQU2VydmVyKCgiMC4wLjAuMCIsIGludChzeXMuYXJndlsxXSkpLCBSZXF1ZXN0SGFuZGxlcikKaHR0cGQuc2VydmVfZm9yZXZlcigpCg== | base64 --decode > unstable_proxy.py'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'bash', '-c', 'echo aW1wb3J0IGh0dHAuY2xpZW50CmltcG9ydCBodHRwLnNlcnZlcgppbXBvcnQgcmFuZG9tCmltcG9ydCBzb2NrZXRzZXJ2ZXIKaW1wb3J0IHN5cwppbXBvcnQgdXJsbGliLnBhcnNlCgoKVVBTVFJFQU1fSE9TVCA9ICJtaW5pbzE6OTAwMSIKcmFuZG9tLnNlZWQoIlVuc3RhYmxlIHByb3h5LzEuMCIpCgoKZGVmIHJlcXVlc3QoY29tbWFuZCwgdXJsLCBoZWFkZXJzPXt9LCBkYXRhPU5vbmUpOgogICAgIiIiTWluaS1yZXF1ZXN0cy4iIiIKCiAgICBjbGFzcyBEdW1teToKICAgICAgICBwYXNzCgogICAgcGFydHMgPSB1cmxsaWIucGFyc2UudXJscGFyc2UodXJsKQogICAgYyA9IGh0dHAuY2xpZW50LkhUVFBDb25uZWN0aW9uKHBhcnRzLmhvc3RuYW1lLCBwYXJ0cy5wb3J0KQogICAgYy5yZXF1ZXN0KAogICAgICAgIGNvbW1hbmQsCiAgICAgICAgdXJsbGliLnBhcnNlLnVybHVucGFyc2UocGFydHMuX3JlcGxhY2Uoc2NoZW1lPSIiLCBuZXRsb2M9IiIpKSwKICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCiAgICAgICAgYm9keT1kYXRhLAogICAgKQogICAgciA9IGMuZ2V0cmVzcG9uc2UoKQogICAgcmVzdWx0ID0gRHVtbXkoKQogICAgcmVzdWx0LnN0YXR1c19jb2RlID0gci5zdGF0dXMKICAgIHJlc3VsdC5oZWFkZXJzID0gci5oZWFkZXJzCiAgICByZXN1bHQuY29udGVudCA9IHIucmVhZCgpCiAgICByZXR1cm4gcmVzdWx0CgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fUFVUKHNlbGYpOgogICAgICAgIHNlbGYuZG9fSEVBRCgpCgogICAgZGVmIGRvX1BPU1Qoc2VsZik6CiAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IHNlbGYuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikKICAgICAgICBkYXRhID0gc2VsZi5yZmlsZS5yZWFkKGludChjb250ZW50X2xlbmd0aCkpIGlmIGNvbnRlbnRfbGVuZ3RoIGVsc2UgTm9uZQogICAgICAgIHIgPSByZXF1ZXN0KAogICAgICAgICAgICBzZWxmLmNvbW1hbmQsCiAgICAgICAgICAgIGYiaHR0cDovL3tVUFNUUkVBTV9IT1NUfXtzZWxmLnBhdGh9IiwKICAgICAgICAgICAgaGVhZGVycz1zZWxmLmhlYWRlcnMsCiAgICAgICAgICAgIGRhdGE9ZGF0YSwKICAgICAgICApCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKHIuc3RhdHVzX2NvZGUpCiAgICAgICAgZm9yIGssIHYgaW4gci5oZWFkZXJzLml0ZW1zKCk6CiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoaywgdikKICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKICAgICAgICBpZiByYW5kb20ucmFuZG9tKCkgPCAwLjI1IGFuZCBsZW4oci5jb250ZW50KSA+IDEwMjQgKiAxMDI0OgogICAgICAgICAgICByLmNvbnRlbnQgPSByLmNvbnRlbnRbOiBsZW4oci5jb250ZW50KSAvLyAyXQogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoci5jb250ZW50KQogICAgICAgIHNlbGYud2ZpbGUuY2xvc2UoKQoKCmNsYXNzIFRocmVhZGVkSFRUUFNlcnZlcihzb2NrZXRzZXJ2ZXIuVGhyZWFkaW5nTWl4SW4sIGh0dHAuc2VydmVyLkhUVFBTZXJ2ZXIpOgogICAgIiIiSGFuZGxlIHJlcXVlc3RzIGluIGEgc2VwYXJhdGUgdGhyZWFkLiIiIgoKCmh0dHBkID0gVGhyZWFkZWRIVFRQU2VydmVyKCgiMC4wLjAuMCIsIGludChzeXMuYXJndlsxXSkpLCBSZXF1ZXN0SGFuZGxlcikKaHR0cGQuc2VydmVfZm9yZXZlcigpCg== | base64 --decode > unstable_proxy.py'] (cluster.py:105, run_and_check) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:True nothrow:False cmd: ['python', 'unstable_proxy.py', '8081'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:False cmd: ['bash', '-c', 'echo aW1wb3J0IGh0dHAuY2xpZW50CmltcG9ydCBodHRwLnNlcnZlcgppbXBvcnQgcmFuZG9tCmltcG9ydCBzb2NrZXRzZXJ2ZXIKaW1wb3J0IHN5cwppbXBvcnQgdXJsbGliLnBhcnNlCgoKVVBTVFJFQU1fSE9TVCA9ICJtaW5pbzE6OTAwMSIKcmFuZG9tLnNlZWQoIk5vIGRlbGV0ZSBvYmplY3RzLzEuMCIpCgoKZGVmIHJlcXVlc3QoY29tbWFuZCwgdXJsLCBoZWFkZXJzPXt9LCBkYXRhPU5vbmUpOgogICAgIiIiTWluaS1yZXF1ZXN0cy4iIiIKCiAgICBjbGFzcyBEdW1teToKICAgICAgICBwYXNzCgogICAgcGFydHMgPSB1cmxsaWIucGFyc2UudXJscGFyc2UodXJsKQogICAgYyA9IGh0dHAuY2xpZW50LkhUVFBDb25uZWN0aW9uKHBhcnRzLmhvc3RuYW1lLCBwYXJ0cy5wb3J0KQogICAgYy5yZXF1ZXN0KAogICAgICAgIGNvbW1hbmQsCiAgICAgICAgdXJsbGliLnBhcnNlLnVybHVucGFyc2UocGFydHMuX3JlcGxhY2Uoc2NoZW1lPSIiLCBuZXRsb2M9IiIpKSwKICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCiAgICAgICAgYm9keT1kYXRhLAogICAgKQogICAgciA9IGMuZ2V0cmVzcG9uc2UoKQogICAgcmVzdWx0ID0gRHVtbXkoKQogICAgcmVzdWx0LnN0YXR1c19jb2RlID0gci5zdGF0dXMKICAgIHJlc3VsdC5oZWFkZXJzID0gci5oZWFkZXJzCiAgICByZXN1bHQuY29udGVudCA9IHIucmVhZCgpCiAgICByZXR1cm4gcmVzdWx0CgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fUFVUKHNlbGYpOgogICAgICAgIHNlbGYuZG9fSEVBRCgpCgogICAgZGVmIGRvX0RFTEVURShzZWxmKToKICAgICAgICBzZWxmLmRvX0hFQUQoKQoKICAgIGRlZiBkb19QT1NUKHNlbGYpOgogICAgICAgIHF1ZXJ5ID0gdXJsbGliLnBhcnNlLnVybHBhcnNlKHNlbGYucGF0aCkucXVlcnkKICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUpCiAgICAgICAgaWYgImRlbGV0ZSIgaW4gcGFyYW1zOgogICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNTAxKQogICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veG1sIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoCiAgICAgICAgICAgICAgICBiIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPgogICAgPENvZGU+Tm90SW1wbGVtZW50ZWQ8L0NvZGU+CiAgICA8TWVzc2FnZT5JbWEgR0NQIGFuZCBJIGNhbid0IGRvIGBEZWxldGVPYmplY3RzYCByZXF1ZXN0IGZvciB5YS4gU2VlIGh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vaXNzdWVzLzE2MjY1MzcwMCAuPC9NZXNzYWdlPgogICAgPFJlc291cmNlPlJFU09VUkNFPC9SZXNvdXJjZT4KICAgIDxSZXF1ZXN0SWQ+UkVRVUVTVF9JRDwvUmVxdWVzdElkPgo8L0Vycm9yPiIiIgogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IHNlbGYuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikKICAgICAgICBkYXRhID0gc2VsZi5yZmlsZS5yZWFkKGludChjb250ZW50X2xlbmd0aCkpIGlmIGNvbnRlbnRfbGVuZ3RoIGVsc2UgTm9uZQogICAgICAgIHIgPSByZXF1ZXN0KAogICAgICAgICAgICBzZWxmLmNvbW1hbmQsCiAgICAgICAgICAgIGYiaHR0cDovL3tVUFNUUkVBTV9IT1NUfXtzZWxmLnBhdGh9IiwKICAgICAgICAgICAgaGVhZGVycz1zZWxmLmhlYWRlcnMsCiAgICAgICAgICAgIGRhdGE9ZGF0YSwKICAgICAgICApCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKHIuc3RhdHVzX2NvZGUpCiAgICAgICAgZm9yIGssIHYgaW4gci5oZWFkZXJzLml0ZW1zKCk6CiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoaywgdikKICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKICAgICAgICBzZWxmLndmaWxlLndyaXRlKHIuY29udGVudCkKICAgICAgICBzZWxmLndmaWxlLmNsb3NlKCkKCgpjbGFzcyBUaHJlYWRlZEhUVFBTZXJ2ZXIoc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLCBodHRwLnNlcnZlci5IVFRQU2VydmVyKToKICAgICIiIkhhbmRsZSByZXF1ZXN0cyBpbiBhIHNlcGFyYXRlIHRocmVhZC4iIiIKCgpodHRwZCA9IFRocmVhZGVkSFRUUFNlcnZlcigoIjAuMC4wLjAiLCBpbnQoc3lzLmFyZ3ZbMV0pKSwgUmVxdWVzdEhhbmRsZXIpCmh0dHBkLnNlcnZlX2ZvcmV2ZXIoKQo= | base64 --decode > no_delete_objects.py'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'bash', '-c', 'echo aW1wb3J0IGh0dHAuY2xpZW50CmltcG9ydCBodHRwLnNlcnZlcgppbXBvcnQgcmFuZG9tCmltcG9ydCBzb2NrZXRzZXJ2ZXIKaW1wb3J0IHN5cwppbXBvcnQgdXJsbGliLnBhcnNlCgoKVVBTVFJFQU1fSE9TVCA9ICJtaW5pbzE6OTAwMSIKcmFuZG9tLnNlZWQoIk5vIGRlbGV0ZSBvYmplY3RzLzEuMCIpCgoKZGVmIHJlcXVlc3QoY29tbWFuZCwgdXJsLCBoZWFkZXJzPXt9LCBkYXRhPU5vbmUpOgogICAgIiIiTWluaS1yZXF1ZXN0cy4iIiIKCiAgICBjbGFzcyBEdW1teToKICAgICAgICBwYXNzCgogICAgcGFydHMgPSB1cmxsaWIucGFyc2UudXJscGFyc2UodXJsKQogICAgYyA9IGh0dHAuY2xpZW50LkhUVFBDb25uZWN0aW9uKHBhcnRzLmhvc3RuYW1lLCBwYXJ0cy5wb3J0KQogICAgYy5yZXF1ZXN0KAogICAgICAgIGNvbW1hbmQsCiAgICAgICAgdXJsbGliLnBhcnNlLnVybHVucGFyc2UocGFydHMuX3JlcGxhY2Uoc2NoZW1lPSIiLCBuZXRsb2M9IiIpKSwKICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCiAgICAgICAgYm9keT1kYXRhLAogICAgKQogICAgciA9IGMuZ2V0cmVzcG9uc2UoKQogICAgcmVzdWx0ID0gRHVtbXkoKQogICAgcmVzdWx0LnN0YXR1c19jb2RlID0gci5zdGF0dXMKICAgIHJlc3VsdC5oZWFkZXJzID0gci5oZWFkZXJzCiAgICByZXN1bHQuY29udGVudCA9IHIucmVhZCgpCiAgICByZXR1cm4gcmVzdWx0CgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fUFVUKHNlbGYpOgogICAgICAgIHNlbGYuZG9fSEVBRCgpCgogICAgZGVmIGRvX0RFTEVURShzZWxmKToKICAgICAgICBzZWxmLmRvX0hFQUQoKQoKICAgIGRlZiBkb19QT1NUKHNlbGYpOgogICAgICAgIHF1ZXJ5ID0gdXJsbGliLnBhcnNlLnVybHBhcnNlKHNlbGYucGF0aCkucXVlcnkKICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUpCiAgICAgICAgaWYgImRlbGV0ZSIgaW4gcGFyYW1zOgogICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNTAxKQogICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veG1sIikKICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoCiAgICAgICAgICAgICAgICBiIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPgogICAgPENvZGU+Tm90SW1wbGVtZW50ZWQ8L0NvZGU+CiAgICA8TWVzc2FnZT5JbWEgR0NQIGFuZCBJIGNhbid0IGRvIGBEZWxldGVPYmplY3RzYCByZXF1ZXN0IGZvciB5YS4gU2VlIGh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vaXNzdWVzLzE2MjY1MzcwMCAuPC9NZXNzYWdlPgogICAgPFJlc291cmNlPlJFU09VUkNFPC9SZXNvdXJjZT4KICAgIDxSZXF1ZXN0SWQ+UkVRVUVTVF9JRDwvUmVxdWVzdElkPgo8L0Vycm9yPiIiIgogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5kb19IRUFEKCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IHNlbGYuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikKICAgICAgICBkYXRhID0gc2VsZi5yZmlsZS5yZWFkKGludChjb250ZW50X2xlbmd0aCkpIGlmIGNvbnRlbnRfbGVuZ3RoIGVsc2UgTm9uZQogICAgICAgIHIgPSByZXF1ZXN0KAogICAgICAgICAgICBzZWxmLmNvbW1hbmQsCiAgICAgICAgICAgIGYiaHR0cDovL3tVUFNUUkVBTV9IT1NUfXtzZWxmLnBhdGh9IiwKICAgICAgICAgICAgaGVhZGVycz1zZWxmLmhlYWRlcnMsCiAgICAgICAgICAgIGRhdGE9ZGF0YSwKICAgICAgICApCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKHIuc3RhdHVzX2NvZGUpCiAgICAgICAgZm9yIGssIHYgaW4gci5oZWFkZXJzLml0ZW1zKCk6CiAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoaywgdikKICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKICAgICAgICBzZWxmLndmaWxlLndyaXRlKHIuY29udGVudCkKICAgICAgICBzZWxmLndmaWxlLmNsb3NlKCkKCgpjbGFzcyBUaHJlYWRlZEhUVFBTZXJ2ZXIoc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLCBodHRwLnNlcnZlci5IVFRQU2VydmVyKToKICAgICIiIkhhbmRsZSByZXF1ZXN0cyBpbiBhIHNlcGFyYXRlIHRocmVhZC4iIiIKCgpodHRwZCA9IFRocmVhZGVkSFRUUFNlcnZlcigoIjAuMC4wLjAiLCBpbnQoc3lzLmFyZ3ZbMV0pKSwgUmVxdWVzdEhhbmRsZXIpCmh0dHBkLnNlcnZlX2ZvcmV2ZXIoKQo= | base64 --decode > no_delete_objects.py'] (cluster.py:105, run_and_check) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:True nothrow:False cmd: ['python', 'no_delete_objects.py', '8082'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8081/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8081/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:11 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:11 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8082/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:11 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8082/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:12 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:13 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8081/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:13 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8081/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:13 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:13 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8082/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:13 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8082/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:13 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:14 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8081/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:14 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8081/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:15 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:15 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8082/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:15 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8082/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:15 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:16 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8081/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:16 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8081/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:18 [ 397 ] DEBUG : Stdout:OK (cluster.py:113, run_and_check) 2026-10-27 17:54:18 [ 397 ] DEBUG : unstable_proxy.py answered OK on attempt 4 (mock_servers.py:53, start_mock_servers) 2026-10-27 17:54:18 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8082/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:18 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8082/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:20 [ 397 ] DEBUG : Stdout:OK (cluster.py:113, run_and_check) 2026-10-27 17:54:20 [ 397 ] DEBUG : no_delete_objects.py answered OK on attempt 4 (mock_servers.py:53, start_mock_servers) 2026-10-27 17:54:20 [ 397 ] INFO : Mock servers unstable_proxy.py,no_delete_objects.py started (mock_servers.py:68, start_mock_servers) 2026-10-27 17:54:20 [ 397 ] INFO : Starting mock server broken_s3.py (mock_servers.py:18, start_mock_servers) 2026-10-27 17:54:20 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:False cmd: ['bash', '-c', 'echo aW1wb3J0IGxvZ2dpbmcKaW1wb3J0IHN5cwppbXBvcnQgdGhyZWFkaW5nCmltcG9ydCByYW5kb20KaW1wb3J0IHRpbWUKaW1wb3J0IHVybGxpYi5wYXJzZQppbXBvcnQgaHR0cC5zZXJ2ZXIKaW1wb3J0IHNvY2tldHNlcnZlcgppbXBvcnQgc3RyaW5nCmltcG9ydCBzb2NrZXQKaW1wb3J0IHN0cnVjdAoKCklORl9DT1VOVCA9IDEwMDAwMDAwMAoKCmRlZiBfYW5kX3RoZW4odmFsdWUsIGZ1bmMpOgogICAgYXNzZXJ0IGNhbGxhYmxlKGZ1bmMpCiAgICByZXR1cm4gTm9uZSBpZiB2YWx1ZSBpcyBOb25lIGVsc2UgZnVuYyh2YWx1ZSkKCgpjbGFzcyBNb2NrQ29udHJvbDoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbHVzdGVyLCBjb250YWluZXIsIHBvcnQpOgogICAgICAgIHNlbGYuX2NsdXN0ZXIgPSBjbHVzdGVyCiAgICAgICAgc2VsZi5fY29udGFpbmVyID0gY29udGFpbmVyCiAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKCiAgICBkZWYgcmVzZXQoc2VsZik6CiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgImN1cmwiLAogICAgICAgICAgICAgICAgIi1zIiwKICAgICAgICAgICAgICAgIGYiaHR0cDovL2xvY2FsaG9zdDp7c2VsZi5fcG9ydH0vbW9ja19zZXR0aW5ncy9yZXNldCIsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX2FjdGlvbihzZWxmLCB3aGVuLCBjb3VudD1Ob25lLCBhZnRlcj1Ob25lLCBhY3Rpb249Tm9uZSwgYWN0aW9uX2FyZ3M9Tm9uZSk6CiAgICAgICAgdXJsID0gZiJodHRwOi8vbG9jYWxob3N0OntzZWxmLl9wb3J0fS9tb2NrX3NldHRpbmdzL3t3aGVufT9ub3RoaW5nPTEiCgogICAgICAgIGlmIGNvdW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICB1cmwgKz0gZiImY291bnQ9e2NvdW50fSIKCiAgICAgICAgaWYgYWZ0ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHVybCArPSBmIiZhZnRlcj17YWZ0ZXJ9IgoKICAgICAgICBpZiBhY3Rpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHVybCArPSBmIiZhY3Rpb249e2FjdGlvbn0iCgogICAgICAgIGlmIGFjdGlvbl9hcmdzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBmb3IgeCBpbiBhY3Rpb25fYXJnczoKICAgICAgICAgICAgICAgIHVybCArPSBmIiZhY3Rpb25fYXJncz17eH0iCgogICAgICAgIHJlc3BvbnNlID0gc2VsZi5fY2x1c3Rlci5leGVjX2luX2NvbnRhaW5lcigKICAgICAgICAgICAgc2VsZi5fY2x1c3Rlci5nZXRfY29udGFpbmVyX2lkKHNlbGYuX2NvbnRhaW5lciksCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICJjdXJsIiwKICAgICAgICAgICAgICAgICItcyIsCiAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX2F0X29iamVjdF91cGxvYWQoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuc2V0dXBfYWN0aW9uKCJhdF9vYmplY3RfdXBsb2FkIiwgKiprd2FyZ3MpCgogICAgZGVmIHNldHVwX2F0X3BhcnRfdXBsb2FkKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNldHVwX2FjdGlvbigiYXRfcGFydF91cGxvYWQiLCAqKmt3YXJncykKCiAgICBkZWYgc2V0dXBfYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNldHVwX2FjdGlvbigiYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIiwgKiprd2FyZ3MpCgogICAgZGVmIHNldHVwX2Zha2VfcHV0cyhzZWxmLCBwYXJ0X2xlbmd0aCk6CiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgImN1cmwiLAogICAgICAgICAgICAgICAgIi1zIiwKICAgICAgICAgICAgICAgIGYiaHR0cDovL2xvY2FsaG9zdDp7c2VsZi5fcG9ydH0vbW9ja19zZXR0aW5ncy9mYWtlX3B1dHM/d2hlbl9sZW5ndGhfYmlnZ2VyPXtwYXJ0X2xlbmd0aH0iLAogICAgICAgICAgICBdLAogICAgICAgICAgICBub3Rocm93PVRydWUsCiAgICAgICAgKQogICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAiT0siLCByZXNwb25zZQoKICAgIGRlZiBzZXR1cF9mYWtlX211bHRwYXJ0dXBsb2FkcyhzZWxmKToKICAgICAgICByZXNwb25zZSA9IHNlbGYuX2NsdXN0ZXIuZXhlY19pbl9jb250YWluZXIoCiAgICAgICAgICAgIHNlbGYuX2NsdXN0ZXIuZ2V0X2NvbnRhaW5lcl9pZChzZWxmLl9jb250YWluZXIpLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiY3VybCIsCiAgICAgICAgICAgICAgICAiLXMiLAogICAgICAgICAgICAgICAgZiJodHRwOi8vbG9jYWxob3N0OntzZWxmLl9wb3J0fS9tb2NrX3NldHRpbmdzL3NldHVwX2Zha2VfbXVsdHBhcnR1cGxvYWRzPyIsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX3Nsb3dfYW5zd2VycygKICAgICAgICBzZWxmLCBtaW5pbWFsX2xlbmd0aD0wLCB0aW1lb3V0PU5vbmUsIHByb2JhYmlsaXR5PU5vbmUsIGNvdW50PU5vbmUKICAgICk6CiAgICAgICAgdXJsID0gKAogICAgICAgICAgICBmImh0dHA6Ly9sb2NhbGhvc3Q6e3NlbGYuX3BvcnR9LyIKICAgICAgICAgICAgZiJtb2NrX3NldHRpbmdzL3Nsb3dfcHV0IgogICAgICAgICAgICBmIj9taW5pbWFsX2xlbmd0aD17bWluaW1hbF9sZW5ndGh9IgogICAgICAgICkKCiAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgdXJsICs9IGYiJnRpbWVvdXQ9e3RpbWVvdXR9IgoKICAgICAgICBpZiBwcm9iYWJpbGl0eSBpcyBub3QgTm9uZToKICAgICAgICAgICAgdXJsICs9IGYiJnByb2JhYmlsaXR5PXtwcm9iYWJpbGl0eX0iCgogICAgICAgIGlmIGNvdW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICB1cmwgKz0gZiImY291bnQ9e2NvdW50fSIKCiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWyJjdXJsIiwgIi1zIiwgdXJsXSwKICAgICAgICAgICAgbm90aHJvdz1UcnVlLAogICAgICAgICkKICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gIk9LIiwgcmVzcG9uc2UKCgpjbGFzcyBfU2VydmVyUnVudGltZToKICAgIGNsYXNzIFNsb3dQdXQ6CiAgICAgICAgZGVmIF9faW5pdF9fKAogICAgICAgICAgICBzZWxmLAogICAgICAgICAgICBsb2NrLAogICAgICAgICAgICBwcm9iYWJpbGl0eV89Tm9uZSwKICAgICAgICAgICAgdGltZW91dF89Tm9uZSwKICAgICAgICAgICAgbWluaW1hbF9sZW5ndGhfPU5vbmUsCiAgICAgICAgICAgIGNvdW50Xz1Ob25lLAogICAgICAgICk6CiAgICAgICAgICAgIHNlbGYubG9jayA9IGxvY2sKICAgICAgICAgICAgc2VsZi5wcm9iYWJpbGl0eSA9IHByb2JhYmlsaXR5XyBpZiBwcm9iYWJpbGl0eV8gaXMgbm90IE5vbmUgZWxzZSAxCiAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXRfIGlmIHRpbWVvdXRfIGlzIG5vdCBOb25lIGVsc2UgMC4xCiAgICAgICAgICAgIHNlbGYubWluaW1hbF9sZW5ndGggPSBtaW5pbWFsX2xlbmd0aF8gaWYgbWluaW1hbF9sZW5ndGhfIGlzIG5vdCBOb25lIGVsc2UgMAogICAgICAgICAgICBzZWxmLmNvdW50ID0gY291bnRfIGlmIGNvdW50XyBpcyBub3QgTm9uZSBlbHNlIElORl9DT1VOVAoKICAgICAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGYicHJvYmFiaWxpdHk6e3NlbGYucHJvYmFiaWxpdHl9IgogICAgICAgICAgICAgICAgZiIgdGltZW91dDp7c2VsZi50aW1lb3V0fSIKICAgICAgICAgICAgICAgIGYiIG1pbmltYWxfbGVuZ3RoOntzZWxmLm1pbmltYWxfbGVuZ3RofSIKICAgICAgICAgICAgICAgIGYiIGNvdW50OntzZWxmLmNvdW50fSIKICAgICAgICAgICAgKQoKICAgICAgICBkZWYgZ2V0X3RpbWVvdXQoc2VsZiwgY29udGVudF9sZW5ndGgpOgogICAgICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgICAgIGlmIGNvbnRlbnRfbGVuZ3RoID4gc2VsZi5taW5pbWFsX2xlbmd0aDoKICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmNvdW50ID4gMDoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuc2xvd19wdXQucHJvYmFiaWxpdHkgPT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgcmFuZG9tLnJhbmRvbSgpIDw9IF9ydW50aW1lLnNsb3dfcHV0LnByb2JhYmlsaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvdW50IC09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5zbG93X3B1dC50aW1lb3V0CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgY2xhc3MgRXhwZWN0ZWQ1MDBFcnJvckFjdGlvbjoKICAgICAgICBkZWYgaW5qZWN0X2Vycm9yKHNlbGYsIHJlcXVlc3RfaGFuZGxlcik6CiAgICAgICAgICAgIGRhdGEgPSAoCiAgICAgICAgICAgICAgICAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nCiAgICAgICAgICAgICAgICAiPEVycm9yPiIKICAgICAgICAgICAgICAgICI8Q29kZT5FeHBlY3RlZEVycm9yPC9Db2RlPiIKICAgICAgICAgICAgICAgICI8TWVzc2FnZT5tb2NrIHMzIGluamVjdGVkIGVycm9yPC9NZXNzYWdlPiIKICAgICAgICAgICAgICAgICI8UmVxdWVzdElkPnR4ZmJkNTY2ZDAzMDQyNDc0ODg4MTkzLTAwNjA4ZDc1Mzc8L1JlcXVlc3RJZD4iCiAgICAgICAgICAgICAgICAiPC9FcnJvcj4iCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLndyaXRlX2Vycm9yKGRhdGEpCgogICAgY2xhc3MgUmVkaXJlY3RBY3Rpb246CiAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9ImxvY2FsaG9zdCIsIHBvcnQ9MSk6CiAgICAgICAgICAgIHNlbGYuZHN0X2hvc3QgPSBfYW5kX3RoZW4oaG9zdCwgc3RyKQogICAgICAgICAgICBzZWxmLmRzdF9wb3J0ID0gX2FuZF90aGVuKHBvcnQsIGludCkKCiAgICAgICAgZGVmIGluamVjdF9lcnJvcihzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIucmVkaXJlY3QoaG9zdD1zZWxmLmRzdF9ob3N0LCBwb3J0PXNlbGYuZHN0X3BvcnQpCgogICAgY2xhc3MgQ29ubmVjdGlvblJlc2V0QnlQZWVyQWN0aW9uOgogICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aXRoX3BhcnRpYWxfZGF0YT1Ob25lKToKICAgICAgICAgICAgc2VsZi5wYXJ0aWFsX2RhdGEgPSAiIgogICAgICAgICAgICBpZiB3aXRoX3BhcnRpYWxfZGF0YSBpcyBub3QgTm9uZSBhbmQgd2l0aF9wYXJ0aWFsX2RhdGEgPT0gIjEiOgogICAgICAgICAgICAgICAgc2VsZi5wYXJ0aWFsX2RhdGEgPSAoCiAgICAgICAgICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICAgICAgICAgIjxJbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdD5cbiIKICAgICAgICAgICAgICAgICkKCiAgICAgICAgZGVmIGluamVjdF9lcnJvcihzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIucmVhZF9hbGxfaW5wdXQoKQoKICAgICAgICAgICAgaWYgc2VsZi5wYXJ0aWFsX2RhdGE6CiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9oZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIiwgMTAwMDApCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuZW5kX2hlYWRlcnMoKQogICAgICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGJ5dGVzKHNlbGYucGFydGlhbF9kYXRhLCAiVVRGLTgiKSkKCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLmNvbm5lY3Rpb24uc2V0c29ja29wdCgKICAgICAgICAgICAgICAgIHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU09fTElOR0VSLCBzdHJ1Y3QucGFjaygiaWkiLCAxLCAwKQogICAgICAgICAgICApCiAgICAgICAgICAgIHJlcXVlc3RfaGFuZGxlci5jb25uZWN0aW9uLmNsb3NlKCkKCiAgICBjbGFzcyBCcm9rZW5QaXBlQWN0aW9uOgogICAgICAgIGRlZiBpbmplY3RfZXJyb3Ioc2VsZiwgcmVxdWVzdF9oYW5kbGVyKToKICAgICAgICAgICAgIyBwYXJ0aWFsIHJlYWQKICAgICAgICAgICAgc2VsZi5yZmlsZS5yZWFkKDUwKQoKICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuY29ubmVjdGlvbi5zZXRzb2Nrb3B0KAogICAgICAgICAgICAgICAgc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19MSU5HRVIsIHN0cnVjdC5wYWNrKCJpaSIsIDEsIDApCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLmNvbm5lY3Rpb24uY2xvc2UoKQoKICAgIGNsYXNzIENvbm5lY3Rpb25SZWZ1c2VkQWN0aW9uKFJlZGlyZWN0QWN0aW9uKToKICAgICAgICBwYXNzCgogICAgY2xhc3MgQ291bnRBZnRlcjoKICAgICAgICBkZWYgX19pbml0X18oCiAgICAgICAgICAgIHNlbGYsIGxvY2ssIGNvdW50Xz1Ob25lLCBhZnRlcl89Tm9uZSwgYWN0aW9uXz1Ob25lLCBhY3Rpb25fYXJnc189W10KICAgICAgICApOgogICAgICAgICAgICBzZWxmLmxvY2sgPSBsb2NrCgogICAgICAgICAgICBzZWxmLmNvdW50ID0gY291bnRfIGlmIGNvdW50XyBpcyBub3QgTm9uZSBlbHNlIElORl9DT1VOVAogICAgICAgICAgICBzZWxmLmFmdGVyID0gYWZ0ZXJfIGlmIGFmdGVyXyBpcyBub3QgTm9uZSBlbHNlIDAKICAgICAgICAgICAgc2VsZi5hY3Rpb24gPSBhY3Rpb25fCiAgICAgICAgICAgIHNlbGYuYWN0aW9uX2FyZ3MgPSBhY3Rpb25fYXJnc18KCiAgICAgICAgICAgIGlmIHNlbGYuYWN0aW9uID09ICJjb25uZWN0aW9uX3JlZnVzZWQiOgogICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gX1NlcnZlclJ1bnRpbWUuQ29ubmVjdGlvblJlZnVzZWRBY3Rpb24oKQogICAgICAgICAgICBlbGlmIHNlbGYuYWN0aW9uID09ICJjb25uZWN0aW9uX3Jlc2V0X2J5X3BlZXIiOgogICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gX1NlcnZlclJ1bnRpbWUuQ29ubmVjdGlvblJlc2V0QnlQZWVyQWN0aW9uKAogICAgICAgICAgICAgICAgICAgICpzZWxmLmFjdGlvbl9hcmdzCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsaWYgc2VsZi5hY3Rpb24gPT0gImJyb2tlbl9waXBlIjoKICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlciA9IF9TZXJ2ZXJSdW50aW1lLkJyb2tlblBpcGVBY3Rpb24oKQogICAgICAgICAgICBlbGlmIHNlbGYuYWN0aW9uID09ICJyZWRpcmVjdF90byI6CiAgICAgICAgICAgICAgICBzZWxmLmVycm9yX2hhbmRsZXIgPSBfU2VydmVyUnVudGltZS5SZWRpcmVjdEFjdGlvbigqc2VsZi5hY3Rpb25fYXJncykKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlciA9IF9TZXJ2ZXJSdW50aW1lLkV4cGVjdGVkNTAwRXJyb3JBY3Rpb24oKQoKICAgICAgICBAc3RhdGljbWV0aG9kCiAgICAgICAgZGVmIGZyb21fY2dpX3BhcmFtcyhsb2NrLCBwYXJhbXMpOgogICAgICAgICAgICByZXR1cm4gX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlcigKICAgICAgICAgICAgICAgIGxvY2s9bG9jaywKICAgICAgICAgICAgICAgIGNvdW50Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgiY291bnQiLCBbTm9uZV0pWzBdLCBpbnQpLAogICAgICAgICAgICAgICAgYWZ0ZXJfPV9hbmRfdGhlbihwYXJhbXMuZ2V0KCJhZnRlciIsIFtOb25lXSlbMF0sIGludCksCiAgICAgICAgICAgICAgICBhY3Rpb25fPXBhcmFtcy5nZXQoImFjdGlvbiIsIFtOb25lXSlbMF0sCiAgICAgICAgICAgICAgICBhY3Rpb25fYXJnc189cGFyYW1zLmdldCgiYWN0aW9uX2FyZ3MiLCBbXSksCiAgICAgICAgICAgICkKCiAgICAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgICAgIHJldHVybiBmImNvdW50OntzZWxmLmNvdW50fSBhZnRlcjp7c2VsZi5hZnRlcn0gYWN0aW9uOntzZWxmLmFjdGlvbn0gYWN0aW9uX2FyZ3M6e3NlbGYuYWN0aW9uX2FyZ3N9IgoKICAgICAgICBkZWYgaGFzX2VmZmVjdChzZWxmKToKICAgICAgICAgICAgd2l0aCBzZWxmLmxvY2s6CiAgICAgICAgICAgICAgICBpZiBzZWxmLmFmdGVyOgogICAgICAgICAgICAgICAgICAgIHNlbGYuYWZ0ZXIgLT0gMQogICAgICAgICAgICAgICAgaWYgc2VsZi5hZnRlciA9PSAwOgogICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuY291bnQ6CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY291bnQgLT0gMQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgICAgIGRlZiBpbmplY3RfZXJyb3Ioc2VsZiwgcmVxdWVzdF9oYW5kbGVyKToKICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyLmluamVjdF9lcnJvcihyZXF1ZXN0X2hhbmRsZXIpCgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYubG9jayA9IHRocmVhZGluZy5Mb2NrKCkKICAgICAgICBzZWxmLmF0X3BhcnRfdXBsb2FkID0gTm9uZQogICAgICAgIHNlbGYuYXRfb2JqZWN0X3VwbG9hZCA9IE5vbmUKICAgICAgICBzZWxmLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IE5vbmUKICAgICAgICBzZWxmLmZha2VfdXBsb2FkcyA9IGRpY3QoKQogICAgICAgIHNlbGYuc2xvd19wdXQgPSBOb25lCiAgICAgICAgc2VsZi5mYWtlX211bHRpcGFydF91cGxvYWQgPSBOb25lCiAgICAgICAgc2VsZi5hdF9jcmVhdGVfbXVsdGlfcGFydF91cGxvYWQgPSBOb25lCgogICAgZGVmIHJlZ2lzdGVyX2Zha2VfdXBsb2FkKHNlbGYsIHVwbG9hZF9pZCwga2V5KToKICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgc2VsZi5mYWtlX3VwbG9hZHNbdXBsb2FkX2lkXSA9IGtleQoKICAgIGRlZiBpc19mYWtlX3VwbG9hZChzZWxmLCB1cGxvYWRfaWQsIGtleSk6CiAgICAgICAgd2l0aCBzZWxmLmxvY2s6CiAgICAgICAgICAgIGlmIHVwbG9hZF9pZCBpbiBzZWxmLmZha2VfdXBsb2FkczoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmZha2VfdXBsb2Fkc1t1cGxvYWRfaWRdID09IGtleQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGRlZiByZXNldChzZWxmKToKICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgc2VsZi5hdF9wYXJ0X3VwbG9hZCA9IE5vbmUKICAgICAgICAgICAgc2VsZi5hdF9vYmplY3RfdXBsb2FkID0gTm9uZQogICAgICAgICAgICBzZWxmLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IE5vbmUKICAgICAgICAgICAgc2VsZi5mYWtlX3VwbG9hZHMgPSBkaWN0KCkKICAgICAgICAgICAgc2VsZi5zbG93X3B1dCA9IE5vbmUKICAgICAgICAgICAgc2VsZi5mYWtlX211bHRpcGFydF91cGxvYWQgPSBOb25lCiAgICAgICAgICAgIHNlbGYuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkID0gTm9uZQoKCl9ydW50aW1lID0gX1NlcnZlclJ1bnRpbWUoKQoKCmRlZiBnZXRfcmFuZG9tX3N0cmluZyhsZW5ndGgpOgogICAgIyBjaG9vc2UgZnJvbSBhbGwgbG93ZXJjYXNlIGxldHRlcgogICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNhc2UKICAgIHJlc3VsdF9zdHIgPSAiIi5qb2luKHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFuZ2UobGVuZ3RoKSkKICAgIHJldHVybiByZXN1bHRfc3RyCgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgX29rKHNlbGYpOgogICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCgogICAgZGVmIF9waW5nKHNlbGYpOgogICAgICAgIHNlbGYuX29rKCkKCiAgICBkZWYgcmVhZF9hbGxfaW5wdXQoc2VsZik6CiAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldCgiQ29udGVudC1MZW5ndGgiLCAwKSkKICAgICAgICB0b19yZWFkID0gY29udGVudF9sZW5ndGgKICAgICAgICB3aGlsZSB0b19yZWFkID4gMDoKICAgICAgICAgICAgIyByZWFkIGNvbnRlbnQgaW4gb3JkZXIgdG8gYXZvaWQgZXJyb3Igb24gY2xpZW50CiAgICAgICAgICAgICMgUG9jbzo6RXhjZXB0aW9uLiBDb2RlOiAxMDAwLCBlLmNvZGUoKSA9IDMyLCBJL08gZXJyb3I6IEJyb2tlbiBwaXBlCiAgICAgICAgICAgICMgZG8gaXQgcGllY2UgYnkgcGllY2UgaW4gb3JkZXIgdG8gYXZvaWQgYmlnIGFsbG9jYXRpb24KICAgICAgICAgICAgc2l6ZSA9IG1pbih0b19yZWFkLCAxMDI0KQogICAgICAgICAgICBzdHIoc2VsZi5yZmlsZS5yZWFkKHNpemUpKQogICAgICAgICAgICB0b19yZWFkIC09IHNpemUKCiAgICBkZWYgcmVkaXJlY3Qoc2VsZiwgaG9zdD1Ob25lLCBwb3J0PU5vbmUpOgogICAgICAgIGlmIGhvc3QgaXMgTm9uZSBhbmQgcG9ydCBpcyBOb25lOgogICAgICAgICAgICBob3N0ID0gc2VsZi5zZXJ2ZXIudXBzdHJlYW1faG9zdAogICAgICAgICAgICBwb3J0ID0gc2VsZi5zZXJ2ZXIudXBzdHJlYW1fcG9ydAoKICAgICAgICBzZWxmLnJlYWRfYWxsX2lucHV0KCkKCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDMwNykKICAgICAgICB1cmwgPSBmImh0dHA6Ly97aG9zdH06e3BvcnR9e3NlbGYucGF0aH0iCiAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgicmVkaXJlY3QgdG8gJXMiLCB1cmwpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiTG9jYXRpb24iLCB1cmwpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgc2VsZi53ZmlsZS53cml0ZShiIlJlZGlyZWN0ZWQiKQoKICAgIGRlZiB3cml0ZV9lcnJvcihzZWxmLCBkYXRhLCBjb250ZW50X2xlbmd0aD1Ob25lKToKICAgICAgICBpZiBjb250ZW50X2xlbmd0aCBpcyBOb25lOgogICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IGxlbihkYXRhKQogICAgICAgIHNlbGYubG9nX21lc3NhZ2UoIndyaXRlX2Vycm9yICVzIiwgZGF0YSkKICAgICAgICBzZWxmLnJlYWRfYWxsX2lucHV0KCkKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNTAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBzdHIoY29udGVudF9sZW5ndGgpKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQogICAgICAgIGlmIGRhdGE6CiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9mYWtlX3B1dF9vayhzZWxmKToKICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJmYWtlIHB1dCIpCgogICAgICAgIHNlbGYucmVhZF9hbGxfaW5wdXQoKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiRVRhZyIsICJiNTQzNTdmYWYwNjMyY2NlNDZlOTQyZmE2ODM1NmIzOCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCAwKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQoKICAgIGRlZiBfZmFrZV91cGxvYWRzKHNlbGYsIHBhdGgsIHVwbG9hZF9pZCk6CiAgICAgICAgc2VsZi5yZWFkX2FsbF9pbnB1dCgpCgogICAgICAgIHBhcnRzID0gW3ggZm9yIHggaW4gcGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYnVja2V0ID0gcGFydHNbMF0KICAgICAgICBrZXkgPSAiLyIuam9pbihwYXJ0c1sxOl0pCiAgICAgICAgZGF0YSA9ICgKICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICI8SW5pdGlhdGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgICAgIGYiPEJ1Y2tldD57YnVja2V0fTwvQnVja2V0PiIKICAgICAgICAgICAgZiI8S2V5PntrZXl9PC9LZXk+IgogICAgICAgICAgICBmIjxVcGxvYWRJZD57dXBsb2FkX2lkfTwvVXBsb2FkSWQ+IgogICAgICAgICAgICAiPC9Jbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdD4iCiAgICAgICAgKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBsZW4oZGF0YSkpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCgogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9mYWtlX3Bvc3Rfb2soc2VsZiwgcGF0aCk6CiAgICAgICAgc2VsZi5yZWFkX2FsbF9pbnB1dCgpCgogICAgICAgIHBhcnRzID0gW3ggZm9yIHggaW4gcGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYnVja2V0ID0gcGFydHNbMF0KICAgICAgICBrZXkgPSAiLyIuam9pbihwYXJ0c1sxOl0pCiAgICAgICAgbG9jYXRpb24gPSAiaHR0cDovL0V4YW1wbGUtQnVja2V0LnMzLlJlZ2lvbi5hbWF6b25hd3MuY29tLyIgKyBwYXRoCiAgICAgICAgZGF0YSA9ICgKICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICI8Q29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgICAgIGYiPExvY2F0aW9uPntsb2NhdGlvbn08L0xvY2F0aW9uPlxuIgogICAgICAgICAgICBmIjxCdWNrZXQ+e2J1Y2tldH08L0J1Y2tldD5cbiIKICAgICAgICAgICAgZiI8S2V5PntrZXl9PC9LZXk+XG4iCiAgICAgICAgICAgIGYnPEVUYWc+IjM4NThmNjIyMzBhYzNjOTE1ZjMwMGM2NjQzMTJjMTFmLTkiPC9FVGFnPlxuJwogICAgICAgICAgICBmIjwvQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBsZW4oZGF0YSkpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCgogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9tb2NrX3NldHRpbmdzKHNlbGYpOgogICAgICAgIHBhcnRzID0gdXJsbGliLnBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKICAgICAgICBwYXRoID0gW3ggZm9yIHggaW4gcGFydHMucGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYXNzZXJ0IHBhdGhbMF0gPT0gIm1vY2tfc2V0dGluZ3MiLCBwYXRoCiAgICAgICAgaWYgbGVuKHBhdGgpIDwgMjoKICAgICAgICAgICAgcmV0dXJuIHNlbGYud3JpdGVfZXJyb3IoIl9tb2NrX3NldHRpbmdzOiB3cm9uZyBjb21tYW5kIikKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAiYXRfcGFydF91cGxvYWQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCA9IF9TZXJ2ZXJSdW50aW1lLkNvdW50QWZ0ZXIuZnJvbV9jZ2lfcGFyYW1zKAogICAgICAgICAgICAgICAgX3J1bnRpbWUubG9jaywgcGFyYW1zCiAgICAgICAgICAgICkKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IGF0X3BhcnRfdXBsb2FkICVzIiwgX3J1bnRpbWUuYXRfcGFydF91cGxvYWQpCiAgICAgICAgICAgIHJldHVybiBzZWxmLl9vaygpCgogICAgICAgIGlmIHBhdGhbMV0gPT0gImF0X29iamVjdF91cGxvYWQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkID0gX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlci5mcm9tX2NnaV9wYXJhbXMoCiAgICAgICAgICAgICAgICBfcnVudGltZS5sb2NrLCBwYXJhbXMKICAgICAgICAgICAgKQogICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJzZXQgYXRfb2JqZWN0X3VwbG9hZCAlcyIsIF9ydW50aW1lLmF0X29iamVjdF91cGxvYWQpCiAgICAgICAgICAgIHJldHVybiBzZWxmLl9vaygpCgogICAgICAgIGlmIHBhdGhbMV0gPT0gImZha2VfcHV0cyI6CiAgICAgICAgICAgIHBhcmFtcyA9IHVybGxpYi5wYXJzZS5wYXJzZV9xcyhwYXJ0cy5xdWVyeSwga2VlcF9ibGFua192YWx1ZXM9RmFsc2UpCiAgICAgICAgICAgIF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IGludCgKICAgICAgICAgICAgICAgIHBhcmFtcy5nZXQoIndoZW5fbGVuZ3RoX2JpZ2dlciIsIFsxMDI0ICogMTAyNF0pWzBdCiAgICAgICAgICAgICkKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IGZha2VfcHV0cyAlcyIsIF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlcikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAic2xvd19wdXQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5zbG93X3B1dCA9IF9TZXJ2ZXJSdW50aW1lLlNsb3dQdXQoCiAgICAgICAgICAgICAgICBsb2NrPV9ydW50aW1lLmxvY2ssCiAgICAgICAgICAgICAgICBtaW5pbWFsX2xlbmd0aF89X2FuZF90aGVuKHBhcmFtcy5nZXQoIm1pbmltYWxfbGVuZ3RoIiwgW05vbmVdKVswXSwgaW50KSwKICAgICAgICAgICAgICAgIHByb2JhYmlsaXR5Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgicHJvYmFiaWxpdHkiLCBbTm9uZV0pWzBdLCBmbG9hdCksCiAgICAgICAgICAgICAgICB0aW1lb3V0Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgidGltZW91dCIsIFtOb25lXSlbMF0sIGZsb2F0KSwKICAgICAgICAgICAgICAgIGNvdW50Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgiY291bnQiLCBbTm9uZV0pWzBdLCBpbnQpLAogICAgICAgICAgICApCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoInNldCBzbG93IHB1dCAlcyIsIF9ydW50aW1lLnNsb3dfcHV0KQogICAgICAgICAgICByZXR1cm4gc2VsZi5fb2soKQoKICAgICAgICBpZiBwYXRoWzFdID09ICJzZXR1cF9mYWtlX211bHRwYXJ0dXBsb2FkcyI6CiAgICAgICAgICAgIF9ydW50aW1lLmZha2VfbXVsdGlwYXJ0X3VwbG9hZCA9IFRydWUKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IHNldHVwX2Zha2VfbXVsdHBhcnR1cGxvYWRzIikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAiYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIjoKICAgICAgICAgICAgcGFyYW1zID0gdXJsbGliLnBhcnNlLnBhcnNlX3FzKHBhcnRzLnF1ZXJ5LCBrZWVwX2JsYW5rX3ZhbHVlcz1GYWxzZSkKICAgICAgICAgICAgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkID0gKAogICAgICAgICAgICAgICAgX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlci5mcm9tX2NnaV9wYXJhbXMoX3J1bnRpbWUubG9jaywgcGFyYW1zKQogICAgICAgICAgICApCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAic2V0IGF0X2NyZWF0ZV9tdWx0aV9wYXJ0X3VwbG9hZCAlcyIsCiAgICAgICAgICAgICAgICBfcnVudGltZS5hdF9jcmVhdGVfbXVsdGlfcGFydF91cGxvYWQsCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAicmVzZXQiOgogICAgICAgICAgICBfcnVudGltZS5yZXNldCgpCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoInJlc2V0IikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgcmV0dXJuIHNlbGYud3JpdGVfZXJyb3IoIl9tb2NrX3NldHRpbmdzOiB3cm9uZyBjb21tYW5kIikKCiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9waW5nKCkKCiAgICAgICAgaWYgc2VsZi5wYXRoLnN0YXJ0c3dpdGgoIi9tb2NrX3NldHRpbmdzIik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2NrX3NldHRpbmdzKCkKCiAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgiZ2V0IHJlZGlyZWN0IikKICAgICAgICByZXR1cm4gc2VsZi5yZWRpcmVjdCgpCgogICAgZGVmIGRvX1BVVChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0KCJDb250ZW50LUxlbmd0aCIsIDApKQoKICAgICAgICBpZiBfcnVudGltZS5zbG93X3B1dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgdGltZW91dCA9IF9ydW50aW1lLnNsb3dfcHV0LmdldF90aW1lb3V0KGNvbnRlbnRfbGVuZ3RoKQogICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2xvdyBwdXQgJXMiLCB0aW1lb3V0KQogICAgICAgICAgICAgICAgdGltZS5zbGVlcCh0aW1lb3V0KQoKICAgICAgICBwYXJ0cyA9IHVybGxpYi5wYXJzZS51cmxzcGxpdChzZWxmLnBhdGgpCiAgICAgICAgcGFyYW1zID0gdXJsbGliLnBhcnNlLnBhcnNlX3FzKHBhcnRzLnF1ZXJ5LCBrZWVwX2JsYW5rX3ZhbHVlcz1GYWxzZSkKICAgICAgICB1cGxvYWRfaWQgPSBwYXJhbXMuZ2V0KCJ1cGxvYWRJZCIsIFtOb25lXSlbMF0KCiAgICAgICAgaWYgdXBsb2FkX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBpZiBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgInB1dCBhdF9wYXJ0X3VwbG9hZCAlcywgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCwKICAgICAgICAgICAgICAgICAgICB1cGxvYWRfaWQsCiAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfcGFydF91cGxvYWQuaGFzX2VmZmVjdCgpOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZC5pbmplY3RfZXJyb3Ioc2VsZikKICAgICAgICAgICAgaWYgX3J1bnRpbWUuZmFrZV9tdWx0aXBhcnRfdXBsb2FkOgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuaXNfZmFrZV91cGxvYWQodXBsb2FkX2lkLCBwYXJ0cy5wYXRoKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZmFrZV9wdXRfb2soKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGlmIF9ydW50aW1lLmF0X29iamVjdF91cGxvYWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBpZiBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkLmhhc19lZmZlY3QoKToKICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAicHV0IGVycm9yX2F0X29iamVjdF91cGxvYWQgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuYXRfb2JqZWN0X3VwbG9hZCwKICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkLmluamVjdF9lcnJvcihzZWxmKQogICAgICAgICAgICBpZiBfcnVudGltZS5mYWtlX3B1dF93aGVuX2xlbmd0aF9iaWdnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBpZiBjb250ZW50X2xlbmd0aCA+IF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlcjoKICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAicHV0IGZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciAlcywgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuZmFrZV9wdXRfd2hlbl9sZW5ndGhfYmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9mYWtlX3B1dF9vaygpCgogICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICJwdXQgcmVkaXJlY3QgJXMiLAogICAgICAgICAgICBwYXJ0cywKICAgICAgICApCiAgICAgICAgcmV0dXJuIHNlbGYucmVkaXJlY3QoKQoKICAgIGRlZiBkb19QT1NUKHNlbGYpOgogICAgICAgIHBhcnRzID0gdXJsbGliLnBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUpCiAgICAgICAgdXBsb2FkcyA9IHBhcmFtcy5nZXQoInVwbG9hZHMiLCBbTm9uZV0pWzBdCiAgICAgICAgaWYgdXBsb2FkcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkLmhhc19lZmZlY3QoKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkLmluamVjdF9lcnJvcihzZWxmKQoKICAgICAgICAgICAgaWYgX3J1bnRpbWUuZmFrZV9tdWx0aXBhcnRfdXBsb2FkOgogICAgICAgICAgICAgICAgdXBsb2FkX2lkID0gZ2V0X3JhbmRvbV9zdHJpbmcoNSkKICAgICAgICAgICAgICAgIF9ydW50aW1lLnJlZ2lzdGVyX2Zha2VfdXBsb2FkKHVwbG9hZF9pZCwgcGFydHMucGF0aCkKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9mYWtlX3VwbG9hZHMocGFydHMucGF0aCwgdXBsb2FkX2lkKQoKICAgICAgICB1cGxvYWRfaWQgPSBwYXJhbXMuZ2V0KCJ1cGxvYWRJZCIsIFtOb25lXSlbMF0KICAgICAgICBpZiBfcnVudGltZS5pc19mYWtlX3VwbG9hZCh1cGxvYWRfaWQsIHBhcnRzLnBhdGgpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5fZmFrZV9wb3N0X29rKHBhcnRzLnBhdGgpCgogICAgICAgIHJldHVybiBzZWxmLnJlZGlyZWN0KCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBzZWxmLnJlZGlyZWN0KCkKCiAgICBkZWYgZG9fREVMRVRFKHNlbGYpOgogICAgICAgIHNlbGYucmVkaXJlY3QoKQoKCmNsYXNzIF9UaHJlYWRlZEhUVFBTZXJ2ZXIoc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLCBodHRwLnNlcnZlci5IVFRQU2VydmVyKToKICAgICIiIkhhbmRsZSByZXF1ZXN0cyBpbiBhIHNlcGFyYXRlIHRocmVhZC4iIiIKCiAgICBkZWYgc2V0X3Vwc3RyZWFtKHNlbGYsIHVwc3RyZWFtX2hvc3QsIHVwc3RyZWFtX3BvcnQpOgogICAgICAgIHNlbGYudXBzdHJlYW1faG9zdCA9IHVwc3RyZWFtX2hvc3QKICAgICAgICBzZWxmLnVwc3RyZWFtX3BvcnQgPSB1cHN0cmVhbV9wb3J0CgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGh0dHBkID0gX1RocmVhZGVkSFRUUFNlcnZlcigoIjAuMC4wLjAiLCBpbnQoc3lzLmFyZ3ZbMV0pKSwgUmVxdWVzdEhhbmRsZXIpCiAgICBpZiBsZW4oc3lzLmFyZ3YpID09IDQ6CiAgICAgICAgaHR0cGQuc2V0X3Vwc3RyZWFtKHN5cy5hcmd2WzJdLCBzeXMuYXJndlszXSkKICAgIGVsc2U6CiAgICAgICAgaHR0cGQuc2V0X3Vwc3RyZWFtKCJtaW5pbzEiLCA5MDAxKQogICAgaHR0cGQuc2VydmVfZm9yZXZlcigpCg== | base64 --decode > broken_s3.py'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:20 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'bash', '-c', 'echo aW1wb3J0IGxvZ2dpbmcKaW1wb3J0IHN5cwppbXBvcnQgdGhyZWFkaW5nCmltcG9ydCByYW5kb20KaW1wb3J0IHRpbWUKaW1wb3J0IHVybGxpYi5wYXJzZQppbXBvcnQgaHR0cC5zZXJ2ZXIKaW1wb3J0IHNvY2tldHNlcnZlcgppbXBvcnQgc3RyaW5nCmltcG9ydCBzb2NrZXQKaW1wb3J0IHN0cnVjdAoKCklORl9DT1VOVCA9IDEwMDAwMDAwMAoKCmRlZiBfYW5kX3RoZW4odmFsdWUsIGZ1bmMpOgogICAgYXNzZXJ0IGNhbGxhYmxlKGZ1bmMpCiAgICByZXR1cm4gTm9uZSBpZiB2YWx1ZSBpcyBOb25lIGVsc2UgZnVuYyh2YWx1ZSkKCgpjbGFzcyBNb2NrQ29udHJvbDoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbHVzdGVyLCBjb250YWluZXIsIHBvcnQpOgogICAgICAgIHNlbGYuX2NsdXN0ZXIgPSBjbHVzdGVyCiAgICAgICAgc2VsZi5fY29udGFpbmVyID0gY29udGFpbmVyCiAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKCiAgICBkZWYgcmVzZXQoc2VsZik6CiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgImN1cmwiLAogICAgICAgICAgICAgICAgIi1zIiwKICAgICAgICAgICAgICAgIGYiaHR0cDovL2xvY2FsaG9zdDp7c2VsZi5fcG9ydH0vbW9ja19zZXR0aW5ncy9yZXNldCIsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX2FjdGlvbihzZWxmLCB3aGVuLCBjb3VudD1Ob25lLCBhZnRlcj1Ob25lLCBhY3Rpb249Tm9uZSwgYWN0aW9uX2FyZ3M9Tm9uZSk6CiAgICAgICAgdXJsID0gZiJodHRwOi8vbG9jYWxob3N0OntzZWxmLl9wb3J0fS9tb2NrX3NldHRpbmdzL3t3aGVufT9ub3RoaW5nPTEiCgogICAgICAgIGlmIGNvdW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICB1cmwgKz0gZiImY291bnQ9e2NvdW50fSIKCiAgICAgICAgaWYgYWZ0ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHVybCArPSBmIiZhZnRlcj17YWZ0ZXJ9IgoKICAgICAgICBpZiBhY3Rpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHVybCArPSBmIiZhY3Rpb249e2FjdGlvbn0iCgogICAgICAgIGlmIGFjdGlvbl9hcmdzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBmb3IgeCBpbiBhY3Rpb25fYXJnczoKICAgICAgICAgICAgICAgIHVybCArPSBmIiZhY3Rpb25fYXJncz17eH0iCgogICAgICAgIHJlc3BvbnNlID0gc2VsZi5fY2x1c3Rlci5leGVjX2luX2NvbnRhaW5lcigKICAgICAgICAgICAgc2VsZi5fY2x1c3Rlci5nZXRfY29udGFpbmVyX2lkKHNlbGYuX2NvbnRhaW5lciksCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICJjdXJsIiwKICAgICAgICAgICAgICAgICItcyIsCiAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX2F0X29iamVjdF91cGxvYWQoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuc2V0dXBfYWN0aW9uKCJhdF9vYmplY3RfdXBsb2FkIiwgKiprd2FyZ3MpCgogICAgZGVmIHNldHVwX2F0X3BhcnRfdXBsb2FkKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNldHVwX2FjdGlvbigiYXRfcGFydF91cGxvYWQiLCAqKmt3YXJncykKCiAgICBkZWYgc2V0dXBfYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNldHVwX2FjdGlvbigiYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIiwgKiprd2FyZ3MpCgogICAgZGVmIHNldHVwX2Zha2VfcHV0cyhzZWxmLCBwYXJ0X2xlbmd0aCk6CiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgImN1cmwiLAogICAgICAgICAgICAgICAgIi1zIiwKICAgICAgICAgICAgICAgIGYiaHR0cDovL2xvY2FsaG9zdDp7c2VsZi5fcG9ydH0vbW9ja19zZXR0aW5ncy9mYWtlX3B1dHM/d2hlbl9sZW5ndGhfYmlnZ2VyPXtwYXJ0X2xlbmd0aH0iLAogICAgICAgICAgICBdLAogICAgICAgICAgICBub3Rocm93PVRydWUsCiAgICAgICAgKQogICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAiT0siLCByZXNwb25zZQoKICAgIGRlZiBzZXR1cF9mYWtlX211bHRwYXJ0dXBsb2FkcyhzZWxmKToKICAgICAgICByZXNwb25zZSA9IHNlbGYuX2NsdXN0ZXIuZXhlY19pbl9jb250YWluZXIoCiAgICAgICAgICAgIHNlbGYuX2NsdXN0ZXIuZ2V0X2NvbnRhaW5lcl9pZChzZWxmLl9jb250YWluZXIpLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiY3VybCIsCiAgICAgICAgICAgICAgICAiLXMiLAogICAgICAgICAgICAgICAgZiJodHRwOi8vbG9jYWxob3N0OntzZWxmLl9wb3J0fS9tb2NrX3NldHRpbmdzL3NldHVwX2Zha2VfbXVsdHBhcnR1cGxvYWRzPyIsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIG5vdGhyb3c9VHJ1ZSwKICAgICAgICApCiAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09ICJPSyIsIHJlc3BvbnNlCgogICAgZGVmIHNldHVwX3Nsb3dfYW5zd2VycygKICAgICAgICBzZWxmLCBtaW5pbWFsX2xlbmd0aD0wLCB0aW1lb3V0PU5vbmUsIHByb2JhYmlsaXR5PU5vbmUsIGNvdW50PU5vbmUKICAgICk6CiAgICAgICAgdXJsID0gKAogICAgICAgICAgICBmImh0dHA6Ly9sb2NhbGhvc3Q6e3NlbGYuX3BvcnR9LyIKICAgICAgICAgICAgZiJtb2NrX3NldHRpbmdzL3Nsb3dfcHV0IgogICAgICAgICAgICBmIj9taW5pbWFsX2xlbmd0aD17bWluaW1hbF9sZW5ndGh9IgogICAgICAgICkKCiAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgdXJsICs9IGYiJnRpbWVvdXQ9e3RpbWVvdXR9IgoKICAgICAgICBpZiBwcm9iYWJpbGl0eSBpcyBub3QgTm9uZToKICAgICAgICAgICAgdXJsICs9IGYiJnByb2JhYmlsaXR5PXtwcm9iYWJpbGl0eX0iCgogICAgICAgIGlmIGNvdW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICB1cmwgKz0gZiImY291bnQ9e2NvdW50fSIKCiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9jbHVzdGVyLmV4ZWNfaW5fY29udGFpbmVyKAogICAgICAgICAgICBzZWxmLl9jbHVzdGVyLmdldF9jb250YWluZXJfaWQoc2VsZi5fY29udGFpbmVyKSwKICAgICAgICAgICAgWyJjdXJsIiwgIi1zIiwgdXJsXSwKICAgICAgICAgICAgbm90aHJvdz1UcnVlLAogICAgICAgICkKICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gIk9LIiwgcmVzcG9uc2UKCgpjbGFzcyBfU2VydmVyUnVudGltZToKICAgIGNsYXNzIFNsb3dQdXQ6CiAgICAgICAgZGVmIF9faW5pdF9fKAogICAgICAgICAgICBzZWxmLAogICAgICAgICAgICBsb2NrLAogICAgICAgICAgICBwcm9iYWJpbGl0eV89Tm9uZSwKICAgICAgICAgICAgdGltZW91dF89Tm9uZSwKICAgICAgICAgICAgbWluaW1hbF9sZW5ndGhfPU5vbmUsCiAgICAgICAgICAgIGNvdW50Xz1Ob25lLAogICAgICAgICk6CiAgICAgICAgICAgIHNlbGYubG9jayA9IGxvY2sKICAgICAgICAgICAgc2VsZi5wcm9iYWJpbGl0eSA9IHByb2JhYmlsaXR5XyBpZiBwcm9iYWJpbGl0eV8gaXMgbm90IE5vbmUgZWxzZSAxCiAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXRfIGlmIHRpbWVvdXRfIGlzIG5vdCBOb25lIGVsc2UgMC4xCiAgICAgICAgICAgIHNlbGYubWluaW1hbF9sZW5ndGggPSBtaW5pbWFsX2xlbmd0aF8gaWYgbWluaW1hbF9sZW5ndGhfIGlzIG5vdCBOb25lIGVsc2UgMAogICAgICAgICAgICBzZWxmLmNvdW50ID0gY291bnRfIGlmIGNvdW50XyBpcyBub3QgTm9uZSBlbHNlIElORl9DT1VOVAoKICAgICAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGYicHJvYmFiaWxpdHk6e3NlbGYucHJvYmFiaWxpdHl9IgogICAgICAgICAgICAgICAgZiIgdGltZW91dDp7c2VsZi50aW1lb3V0fSIKICAgICAgICAgICAgICAgIGYiIG1pbmltYWxfbGVuZ3RoOntzZWxmLm1pbmltYWxfbGVuZ3RofSIKICAgICAgICAgICAgICAgIGYiIGNvdW50OntzZWxmLmNvdW50fSIKICAgICAgICAgICAgKQoKICAgICAgICBkZWYgZ2V0X3RpbWVvdXQoc2VsZiwgY29udGVudF9sZW5ndGgpOgogICAgICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgICAgIGlmIGNvbnRlbnRfbGVuZ3RoID4gc2VsZi5taW5pbWFsX2xlbmd0aDoKICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmNvdW50ID4gMDoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuc2xvd19wdXQucHJvYmFiaWxpdHkgPT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgcmFuZG9tLnJhbmRvbSgpIDw9IF9ydW50aW1lLnNsb3dfcHV0LnByb2JhYmlsaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvdW50IC09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5zbG93X3B1dC50aW1lb3V0CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgY2xhc3MgRXhwZWN0ZWQ1MDBFcnJvckFjdGlvbjoKICAgICAgICBkZWYgaW5qZWN0X2Vycm9yKHNlbGYsIHJlcXVlc3RfaGFuZGxlcik6CiAgICAgICAgICAgIGRhdGEgPSAoCiAgICAgICAgICAgICAgICAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nCiAgICAgICAgICAgICAgICAiPEVycm9yPiIKICAgICAgICAgICAgICAgICI8Q29kZT5FeHBlY3RlZEVycm9yPC9Db2RlPiIKICAgICAgICAgICAgICAgICI8TWVzc2FnZT5tb2NrIHMzIGluamVjdGVkIGVycm9yPC9NZXNzYWdlPiIKICAgICAgICAgICAgICAgICI8UmVxdWVzdElkPnR4ZmJkNTY2ZDAzMDQyNDc0ODg4MTkzLTAwNjA4ZDc1Mzc8L1JlcXVlc3RJZD4iCiAgICAgICAgICAgICAgICAiPC9FcnJvcj4iCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLndyaXRlX2Vycm9yKGRhdGEpCgogICAgY2xhc3MgUmVkaXJlY3RBY3Rpb246CiAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9ImxvY2FsaG9zdCIsIHBvcnQ9MSk6CiAgICAgICAgICAgIHNlbGYuZHN0X2hvc3QgPSBfYW5kX3RoZW4oaG9zdCwgc3RyKQogICAgICAgICAgICBzZWxmLmRzdF9wb3J0ID0gX2FuZF90aGVuKHBvcnQsIGludCkKCiAgICAgICAgZGVmIGluamVjdF9lcnJvcihzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIucmVkaXJlY3QoaG9zdD1zZWxmLmRzdF9ob3N0LCBwb3J0PXNlbGYuZHN0X3BvcnQpCgogICAgY2xhc3MgQ29ubmVjdGlvblJlc2V0QnlQZWVyQWN0aW9uOgogICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aXRoX3BhcnRpYWxfZGF0YT1Ob25lKToKICAgICAgICAgICAgc2VsZi5wYXJ0aWFsX2RhdGEgPSAiIgogICAgICAgICAgICBpZiB3aXRoX3BhcnRpYWxfZGF0YSBpcyBub3QgTm9uZSBhbmQgd2l0aF9wYXJ0aWFsX2RhdGEgPT0gIjEiOgogICAgICAgICAgICAgICAgc2VsZi5wYXJ0aWFsX2RhdGEgPSAoCiAgICAgICAgICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICAgICAgICAgIjxJbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdD5cbiIKICAgICAgICAgICAgICAgICkKCiAgICAgICAgZGVmIGluamVjdF9lcnJvcihzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIucmVhZF9hbGxfaW5wdXQoKQoKICAgICAgICAgICAgaWYgc2VsZi5wYXJ0aWFsX2RhdGE6CiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuc2VuZF9oZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIiwgMTAwMDApCiAgICAgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuZW5kX2hlYWRlcnMoKQogICAgICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGJ5dGVzKHNlbGYucGFydGlhbF9kYXRhLCAiVVRGLTgiKSkKCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLmNvbm5lY3Rpb24uc2V0c29ja29wdCgKICAgICAgICAgICAgICAgIHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU09fTElOR0VSLCBzdHJ1Y3QucGFjaygiaWkiLCAxLCAwKQogICAgICAgICAgICApCiAgICAgICAgICAgIHJlcXVlc3RfaGFuZGxlci5jb25uZWN0aW9uLmNsb3NlKCkKCiAgICBjbGFzcyBCcm9rZW5QaXBlQWN0aW9uOgogICAgICAgIGRlZiBpbmplY3RfZXJyb3Ioc2VsZiwgcmVxdWVzdF9oYW5kbGVyKToKICAgICAgICAgICAgIyBwYXJ0aWFsIHJlYWQKICAgICAgICAgICAgc2VsZi5yZmlsZS5yZWFkKDUwKQoKICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXIuY29ubmVjdGlvbi5zZXRzb2Nrb3B0KAogICAgICAgICAgICAgICAgc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19MSU5HRVIsIHN0cnVjdC5wYWNrKCJpaSIsIDEsIDApCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyLmNvbm5lY3Rpb24uY2xvc2UoKQoKICAgIGNsYXNzIENvbm5lY3Rpb25SZWZ1c2VkQWN0aW9uKFJlZGlyZWN0QWN0aW9uKToKICAgICAgICBwYXNzCgogICAgY2xhc3MgQ291bnRBZnRlcjoKICAgICAgICBkZWYgX19pbml0X18oCiAgICAgICAgICAgIHNlbGYsIGxvY2ssIGNvdW50Xz1Ob25lLCBhZnRlcl89Tm9uZSwgYWN0aW9uXz1Ob25lLCBhY3Rpb25fYXJnc189W10KICAgICAgICApOgogICAgICAgICAgICBzZWxmLmxvY2sgPSBsb2NrCgogICAgICAgICAgICBzZWxmLmNvdW50ID0gY291bnRfIGlmIGNvdW50XyBpcyBub3QgTm9uZSBlbHNlIElORl9DT1VOVAogICAgICAgICAgICBzZWxmLmFmdGVyID0gYWZ0ZXJfIGlmIGFmdGVyXyBpcyBub3QgTm9uZSBlbHNlIDAKICAgICAgICAgICAgc2VsZi5hY3Rpb24gPSBhY3Rpb25fCiAgICAgICAgICAgIHNlbGYuYWN0aW9uX2FyZ3MgPSBhY3Rpb25fYXJnc18KCiAgICAgICAgICAgIGlmIHNlbGYuYWN0aW9uID09ICJjb25uZWN0aW9uX3JlZnVzZWQiOgogICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gX1NlcnZlclJ1bnRpbWUuQ29ubmVjdGlvblJlZnVzZWRBY3Rpb24oKQogICAgICAgICAgICBlbGlmIHNlbGYuYWN0aW9uID09ICJjb25uZWN0aW9uX3Jlc2V0X2J5X3BlZXIiOgogICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gX1NlcnZlclJ1bnRpbWUuQ29ubmVjdGlvblJlc2V0QnlQZWVyQWN0aW9uKAogICAgICAgICAgICAgICAgICAgICpzZWxmLmFjdGlvbl9hcmdzCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsaWYgc2VsZi5hY3Rpb24gPT0gImJyb2tlbl9waXBlIjoKICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlciA9IF9TZXJ2ZXJSdW50aW1lLkJyb2tlblBpcGVBY3Rpb24oKQogICAgICAgICAgICBlbGlmIHNlbGYuYWN0aW9uID09ICJyZWRpcmVjdF90byI6CiAgICAgICAgICAgICAgICBzZWxmLmVycm9yX2hhbmRsZXIgPSBfU2VydmVyUnVudGltZS5SZWRpcmVjdEFjdGlvbigqc2VsZi5hY3Rpb25fYXJncykKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlciA9IF9TZXJ2ZXJSdW50aW1lLkV4cGVjdGVkNTAwRXJyb3JBY3Rpb24oKQoKICAgICAgICBAc3RhdGljbWV0aG9kCiAgICAgICAgZGVmIGZyb21fY2dpX3BhcmFtcyhsb2NrLCBwYXJhbXMpOgogICAgICAgICAgICByZXR1cm4gX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlcigKICAgICAgICAgICAgICAgIGxvY2s9bG9jaywKICAgICAgICAgICAgICAgIGNvdW50Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgiY291bnQiLCBbTm9uZV0pWzBdLCBpbnQpLAogICAgICAgICAgICAgICAgYWZ0ZXJfPV9hbmRfdGhlbihwYXJhbXMuZ2V0KCJhZnRlciIsIFtOb25lXSlbMF0sIGludCksCiAgICAgICAgICAgICAgICBhY3Rpb25fPXBhcmFtcy5nZXQoImFjdGlvbiIsIFtOb25lXSlbMF0sCiAgICAgICAgICAgICAgICBhY3Rpb25fYXJnc189cGFyYW1zLmdldCgiYWN0aW9uX2FyZ3MiLCBbXSksCiAgICAgICAgICAgICkKCiAgICAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgICAgIHJldHVybiBmImNvdW50OntzZWxmLmNvdW50fSBhZnRlcjp7c2VsZi5hZnRlcn0gYWN0aW9uOntzZWxmLmFjdGlvbn0gYWN0aW9uX2FyZ3M6e3NlbGYuYWN0aW9uX2FyZ3N9IgoKICAgICAgICBkZWYgaGFzX2VmZmVjdChzZWxmKToKICAgICAgICAgICAgd2l0aCBzZWxmLmxvY2s6CiAgICAgICAgICAgICAgICBpZiBzZWxmLmFmdGVyOgogICAgICAgICAgICAgICAgICAgIHNlbGYuYWZ0ZXIgLT0gMQogICAgICAgICAgICAgICAgaWYgc2VsZi5hZnRlciA9PSAwOgogICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuY291bnQ6CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY291bnQgLT0gMQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgICAgIGRlZiBpbmplY3RfZXJyb3Ioc2VsZiwgcmVxdWVzdF9oYW5kbGVyKToKICAgICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyLmluamVjdF9lcnJvcihyZXF1ZXN0X2hhbmRsZXIpCgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYubG9jayA9IHRocmVhZGluZy5Mb2NrKCkKICAgICAgICBzZWxmLmF0X3BhcnRfdXBsb2FkID0gTm9uZQogICAgICAgIHNlbGYuYXRfb2JqZWN0X3VwbG9hZCA9IE5vbmUKICAgICAgICBzZWxmLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IE5vbmUKICAgICAgICBzZWxmLmZha2VfdXBsb2FkcyA9IGRpY3QoKQogICAgICAgIHNlbGYuc2xvd19wdXQgPSBOb25lCiAgICAgICAgc2VsZi5mYWtlX211bHRpcGFydF91cGxvYWQgPSBOb25lCiAgICAgICAgc2VsZi5hdF9jcmVhdGVfbXVsdGlfcGFydF91cGxvYWQgPSBOb25lCgogICAgZGVmIHJlZ2lzdGVyX2Zha2VfdXBsb2FkKHNlbGYsIHVwbG9hZF9pZCwga2V5KToKICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgc2VsZi5mYWtlX3VwbG9hZHNbdXBsb2FkX2lkXSA9IGtleQoKICAgIGRlZiBpc19mYWtlX3VwbG9hZChzZWxmLCB1cGxvYWRfaWQsIGtleSk6CiAgICAgICAgd2l0aCBzZWxmLmxvY2s6CiAgICAgICAgICAgIGlmIHVwbG9hZF9pZCBpbiBzZWxmLmZha2VfdXBsb2FkczoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmZha2VfdXBsb2Fkc1t1cGxvYWRfaWRdID09IGtleQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGRlZiByZXNldChzZWxmKToKICAgICAgICB3aXRoIHNlbGYubG9jazoKICAgICAgICAgICAgc2VsZi5hdF9wYXJ0X3VwbG9hZCA9IE5vbmUKICAgICAgICAgICAgc2VsZi5hdF9vYmplY3RfdXBsb2FkID0gTm9uZQogICAgICAgICAgICBzZWxmLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IE5vbmUKICAgICAgICAgICAgc2VsZi5mYWtlX3VwbG9hZHMgPSBkaWN0KCkKICAgICAgICAgICAgc2VsZi5zbG93X3B1dCA9IE5vbmUKICAgICAgICAgICAgc2VsZi5mYWtlX211bHRpcGFydF91cGxvYWQgPSBOb25lCiAgICAgICAgICAgIHNlbGYuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkID0gTm9uZQoKCl9ydW50aW1lID0gX1NlcnZlclJ1bnRpbWUoKQoKCmRlZiBnZXRfcmFuZG9tX3N0cmluZyhsZW5ndGgpOgogICAgIyBjaG9vc2UgZnJvbSBhbGwgbG93ZXJjYXNlIGxldHRlcgogICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNhc2UKICAgIHJlc3VsdF9zdHIgPSAiIi5qb2luKHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFuZ2UobGVuZ3RoKSkKICAgIHJldHVybiByZXN1bHRfc3RyCgoKY2xhc3MgUmVxdWVzdEhhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICBkZWYgX29rKHNlbGYpOgogICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYiJPSyIpCgogICAgZGVmIF9waW5nKHNlbGYpOgogICAgICAgIHNlbGYuX29rKCkKCiAgICBkZWYgcmVhZF9hbGxfaW5wdXQoc2VsZik6CiAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldCgiQ29udGVudC1MZW5ndGgiLCAwKSkKICAgICAgICB0b19yZWFkID0gY29udGVudF9sZW5ndGgKICAgICAgICB3aGlsZSB0b19yZWFkID4gMDoKICAgICAgICAgICAgIyByZWFkIGNvbnRlbnQgaW4gb3JkZXIgdG8gYXZvaWQgZXJyb3Igb24gY2xpZW50CiAgICAgICAgICAgICMgUG9jbzo6RXhjZXB0aW9uLiBDb2RlOiAxMDAwLCBlLmNvZGUoKSA9IDMyLCBJL08gZXJyb3I6IEJyb2tlbiBwaXBlCiAgICAgICAgICAgICMgZG8gaXQgcGllY2UgYnkgcGllY2UgaW4gb3JkZXIgdG8gYXZvaWQgYmlnIGFsbG9jYXRpb24KICAgICAgICAgICAgc2l6ZSA9IG1pbih0b19yZWFkLCAxMDI0KQogICAgICAgICAgICBzdHIoc2VsZi5yZmlsZS5yZWFkKHNpemUpKQogICAgICAgICAgICB0b19yZWFkIC09IHNpemUKCiAgICBkZWYgcmVkaXJlY3Qoc2VsZiwgaG9zdD1Ob25lLCBwb3J0PU5vbmUpOgogICAgICAgIGlmIGhvc3QgaXMgTm9uZSBhbmQgcG9ydCBpcyBOb25lOgogICAgICAgICAgICBob3N0ID0gc2VsZi5zZXJ2ZXIudXBzdHJlYW1faG9zdAogICAgICAgICAgICBwb3J0ID0gc2VsZi5zZXJ2ZXIudXBzdHJlYW1fcG9ydAoKICAgICAgICBzZWxmLnJlYWRfYWxsX2lucHV0KCkKCiAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDMwNykKICAgICAgICB1cmwgPSBmImh0dHA6Ly97aG9zdH06e3BvcnR9e3NlbGYucGF0aH0iCiAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgicmVkaXJlY3QgdG8gJXMiLCB1cmwpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiTG9jYXRpb24iLCB1cmwpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgc2VsZi53ZmlsZS53cml0ZShiIlJlZGlyZWN0ZWQiKQoKICAgIGRlZiB3cml0ZV9lcnJvcihzZWxmLCBkYXRhLCBjb250ZW50X2xlbmd0aD1Ob25lKToKICAgICAgICBpZiBjb250ZW50X2xlbmd0aCBpcyBOb25lOgogICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IGxlbihkYXRhKQogICAgICAgIHNlbGYubG9nX21lc3NhZ2UoIndyaXRlX2Vycm9yICVzIiwgZGF0YSkKICAgICAgICBzZWxmLnJlYWRfYWxsX2lucHV0KCkKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNTAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBzdHIoY29udGVudF9sZW5ndGgpKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQogICAgICAgIGlmIGRhdGE6CiAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9mYWtlX3B1dF9vayhzZWxmKToKICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJmYWtlIHB1dCIpCgogICAgICAgIHNlbGYucmVhZF9hbGxfaW5wdXQoKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiRVRhZyIsICJiNTQzNTdmYWYwNjMyY2NlNDZlOTQyZmE2ODM1NmIzOCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCAwKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQoKICAgIGRlZiBfZmFrZV91cGxvYWRzKHNlbGYsIHBhdGgsIHVwbG9hZF9pZCk6CiAgICAgICAgc2VsZi5yZWFkX2FsbF9pbnB1dCgpCgogICAgICAgIHBhcnRzID0gW3ggZm9yIHggaW4gcGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYnVja2V0ID0gcGFydHNbMF0KICAgICAgICBrZXkgPSAiLyIuam9pbihwYXJ0c1sxOl0pCiAgICAgICAgZGF0YSA9ICgKICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICI8SW5pdGlhdGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgICAgIGYiPEJ1Y2tldD57YnVja2V0fTwvQnVja2V0PiIKICAgICAgICAgICAgZiI8S2V5PntrZXl9PC9LZXk+IgogICAgICAgICAgICBmIjxVcGxvYWRJZD57dXBsb2FkX2lkfTwvVXBsb2FkSWQ+IgogICAgICAgICAgICAiPC9Jbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdD4iCiAgICAgICAgKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBsZW4oZGF0YSkpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCgogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9mYWtlX3Bvc3Rfb2soc2VsZiwgcGF0aCk6CiAgICAgICAgc2VsZi5yZWFkX2FsbF9pbnB1dCgpCgogICAgICAgIHBhcnRzID0gW3ggZm9yIHggaW4gcGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYnVja2V0ID0gcGFydHNbMF0KICAgICAgICBrZXkgPSAiLyIuam9pbihwYXJ0c1sxOl0pCiAgICAgICAgbG9jYXRpb24gPSAiaHR0cDovL0V4YW1wbGUtQnVja2V0LnMzLlJlZ2lvbi5hbWF6b25hd3MuY29tLyIgKyBwYXRoCiAgICAgICAgZGF0YSA9ICgKICAgICAgICAgICAgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG4nCiAgICAgICAgICAgICI8Q29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgICAgIGYiPExvY2F0aW9uPntsb2NhdGlvbn08L0xvY2F0aW9uPlxuIgogICAgICAgICAgICBmIjxCdWNrZXQ+e2J1Y2tldH08L0J1Y2tldD5cbiIKICAgICAgICAgICAgZiI8S2V5PntrZXl9PC9LZXk+XG4iCiAgICAgICAgICAgIGYnPEVUYWc+IjM4NThmNjIyMzBhYzNjOTE1ZjMwMGM2NjQzMTJjMTFmLTkiPC9FVGFnPlxuJwogICAgICAgICAgICBmIjwvQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHQ+XG4iCiAgICAgICAgKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3htbCIpCiAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBsZW4oZGF0YSkpCiAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCgogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXMoZGF0YSwgIlVURi04IikpCgogICAgZGVmIF9tb2NrX3NldHRpbmdzKHNlbGYpOgogICAgICAgIHBhcnRzID0gdXJsbGliLnBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKICAgICAgICBwYXRoID0gW3ggZm9yIHggaW4gcGFydHMucGF0aC5zcGxpdCgiLyIpIGlmIHhdCiAgICAgICAgYXNzZXJ0IHBhdGhbMF0gPT0gIm1vY2tfc2V0dGluZ3MiLCBwYXRoCiAgICAgICAgaWYgbGVuKHBhdGgpIDwgMjoKICAgICAgICAgICAgcmV0dXJuIHNlbGYud3JpdGVfZXJyb3IoIl9tb2NrX3NldHRpbmdzOiB3cm9uZyBjb21tYW5kIikKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAiYXRfcGFydF91cGxvYWQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCA9IF9TZXJ2ZXJSdW50aW1lLkNvdW50QWZ0ZXIuZnJvbV9jZ2lfcGFyYW1zKAogICAgICAgICAgICAgICAgX3J1bnRpbWUubG9jaywgcGFyYW1zCiAgICAgICAgICAgICkKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IGF0X3BhcnRfdXBsb2FkICVzIiwgX3J1bnRpbWUuYXRfcGFydF91cGxvYWQpCiAgICAgICAgICAgIHJldHVybiBzZWxmLl9vaygpCgogICAgICAgIGlmIHBhdGhbMV0gPT0gImF0X29iamVjdF91cGxvYWQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkID0gX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlci5mcm9tX2NnaV9wYXJhbXMoCiAgICAgICAgICAgICAgICBfcnVudGltZS5sb2NrLCBwYXJhbXMKICAgICAgICAgICAgKQogICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJzZXQgYXRfb2JqZWN0X3VwbG9hZCAlcyIsIF9ydW50aW1lLmF0X29iamVjdF91cGxvYWQpCiAgICAgICAgICAgIHJldHVybiBzZWxmLl9vaygpCgogICAgICAgIGlmIHBhdGhbMV0gPT0gImZha2VfcHV0cyI6CiAgICAgICAgICAgIHBhcmFtcyA9IHVybGxpYi5wYXJzZS5wYXJzZV9xcyhwYXJ0cy5xdWVyeSwga2VlcF9ibGFua192YWx1ZXM9RmFsc2UpCiAgICAgICAgICAgIF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciA9IGludCgKICAgICAgICAgICAgICAgIHBhcmFtcy5nZXQoIndoZW5fbGVuZ3RoX2JpZ2dlciIsIFsxMDI0ICogMTAyNF0pWzBdCiAgICAgICAgICAgICkKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IGZha2VfcHV0cyAlcyIsIF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlcikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAic2xvd19wdXQiOgogICAgICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPUZhbHNlKQogICAgICAgICAgICBfcnVudGltZS5zbG93X3B1dCA9IF9TZXJ2ZXJSdW50aW1lLlNsb3dQdXQoCiAgICAgICAgICAgICAgICBsb2NrPV9ydW50aW1lLmxvY2ssCiAgICAgICAgICAgICAgICBtaW5pbWFsX2xlbmd0aF89X2FuZF90aGVuKHBhcmFtcy5nZXQoIm1pbmltYWxfbGVuZ3RoIiwgW05vbmVdKVswXSwgaW50KSwKICAgICAgICAgICAgICAgIHByb2JhYmlsaXR5Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgicHJvYmFiaWxpdHkiLCBbTm9uZV0pWzBdLCBmbG9hdCksCiAgICAgICAgICAgICAgICB0aW1lb3V0Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgidGltZW91dCIsIFtOb25lXSlbMF0sIGZsb2F0KSwKICAgICAgICAgICAgICAgIGNvdW50Xz1fYW5kX3RoZW4ocGFyYW1zLmdldCgiY291bnQiLCBbTm9uZV0pWzBdLCBpbnQpLAogICAgICAgICAgICApCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoInNldCBzbG93IHB1dCAlcyIsIF9ydW50aW1lLnNsb3dfcHV0KQogICAgICAgICAgICByZXR1cm4gc2VsZi5fb2soKQoKICAgICAgICBpZiBwYXRoWzFdID09ICJzZXR1cF9mYWtlX211bHRwYXJ0dXBsb2FkcyI6CiAgICAgICAgICAgIF9ydW50aW1lLmZha2VfbXVsdGlwYXJ0X3VwbG9hZCA9IFRydWUKICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2V0IHNldHVwX2Zha2VfbXVsdHBhcnR1cGxvYWRzIikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAiYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIjoKICAgICAgICAgICAgcGFyYW1zID0gdXJsbGliLnBhcnNlLnBhcnNlX3FzKHBhcnRzLnF1ZXJ5LCBrZWVwX2JsYW5rX3ZhbHVlcz1GYWxzZSkKICAgICAgICAgICAgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkID0gKAogICAgICAgICAgICAgICAgX1NlcnZlclJ1bnRpbWUuQ291bnRBZnRlci5mcm9tX2NnaV9wYXJhbXMoX3J1bnRpbWUubG9jaywgcGFyYW1zKQogICAgICAgICAgICApCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAic2V0IGF0X2NyZWF0ZV9tdWx0aV9wYXJ0X3VwbG9hZCAlcyIsCiAgICAgICAgICAgICAgICBfcnVudGltZS5hdF9jcmVhdGVfbXVsdGlfcGFydF91cGxvYWQsCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgaWYgcGF0aFsxXSA9PSAicmVzZXQiOgogICAgICAgICAgICBfcnVudGltZS5yZXNldCgpCiAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoInJlc2V0IikKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29rKCkKCiAgICAgICAgcmV0dXJuIHNlbGYud3JpdGVfZXJyb3IoIl9tb2NrX3NldHRpbmdzOiB3cm9uZyBjb21tYW5kIikKCiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIGlmIHNlbGYucGF0aCA9PSAiLyI6CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9waW5nKCkKCiAgICAgICAgaWYgc2VsZi5wYXRoLnN0YXJ0c3dpdGgoIi9tb2NrX3NldHRpbmdzIik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2NrX3NldHRpbmdzKCkKCiAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgiZ2V0IHJlZGlyZWN0IikKICAgICAgICByZXR1cm4gc2VsZi5yZWRpcmVjdCgpCgogICAgZGVmIGRvX1BVVChzZWxmKToKICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0KCJDb250ZW50LUxlbmd0aCIsIDApKQoKICAgICAgICBpZiBfcnVudGltZS5zbG93X3B1dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgdGltZW91dCA9IF9ydW50aW1lLnNsb3dfcHV0LmdldF90aW1lb3V0KGNvbnRlbnRfbGVuZ3RoKQogICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgc2VsZi5sb2dfbWVzc2FnZSgic2xvdyBwdXQgJXMiLCB0aW1lb3V0KQogICAgICAgICAgICAgICAgdGltZS5zbGVlcCh0aW1lb3V0KQoKICAgICAgICBwYXJ0cyA9IHVybGxpYi5wYXJzZS51cmxzcGxpdChzZWxmLnBhdGgpCiAgICAgICAgcGFyYW1zID0gdXJsbGliLnBhcnNlLnBhcnNlX3FzKHBhcnRzLnF1ZXJ5LCBrZWVwX2JsYW5rX3ZhbHVlcz1GYWxzZSkKICAgICAgICB1cGxvYWRfaWQgPSBwYXJhbXMuZ2V0KCJ1cGxvYWRJZCIsIFtOb25lXSlbMF0KCiAgICAgICAgaWYgdXBsb2FkX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBpZiBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgInB1dCBhdF9wYXJ0X3VwbG9hZCAlcywgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZCwKICAgICAgICAgICAgICAgICAgICB1cGxvYWRfaWQsCiAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfcGFydF91cGxvYWQuaGFzX2VmZmVjdCgpOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5hdF9wYXJ0X3VwbG9hZC5pbmplY3RfZXJyb3Ioc2VsZikKICAgICAgICAgICAgaWYgX3J1bnRpbWUuZmFrZV9tdWx0aXBhcnRfdXBsb2FkOgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuaXNfZmFrZV91cGxvYWQodXBsb2FkX2lkLCBwYXJ0cy5wYXRoKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZmFrZV9wdXRfb2soKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGlmIF9ydW50aW1lLmF0X29iamVjdF91cGxvYWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBpZiBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkLmhhc19lZmZlY3QoKToKICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAicHV0IGVycm9yX2F0X29iamVjdF91cGxvYWQgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuYXRfb2JqZWN0X3VwbG9hZCwKICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBfcnVudGltZS5hdF9vYmplY3RfdXBsb2FkLmluamVjdF9lcnJvcihzZWxmKQogICAgICAgICAgICBpZiBfcnVudGltZS5mYWtlX3B1dF93aGVuX2xlbmd0aF9iaWdnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBpZiBjb250ZW50X2xlbmd0aCA+IF9ydW50aW1lLmZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlcjoKICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAicHV0IGZha2VfcHV0X3doZW5fbGVuZ3RoX2JpZ2dlciAlcywgJXMsICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgX3J1bnRpbWUuZmFrZV9wdXRfd2hlbl9sZW5ndGhfYmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9mYWtlX3B1dF9vaygpCgogICAgICAgIHNlbGYubG9nX21lc3NhZ2UoCiAgICAgICAgICAgICJwdXQgcmVkaXJlY3QgJXMiLAogICAgICAgICAgICBwYXJ0cywKICAgICAgICApCiAgICAgICAgcmV0dXJuIHNlbGYucmVkaXJlY3QoKQoKICAgIGRlZiBkb19QT1NUKHNlbGYpOgogICAgICAgIHBhcnRzID0gdXJsbGliLnBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKICAgICAgICBwYXJhbXMgPSB1cmxsaWIucGFyc2UucGFyc2VfcXMocGFydHMucXVlcnksIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUpCiAgICAgICAgdXBsb2FkcyA9IHBhcmFtcy5nZXQoInVwbG9hZHMiLCBbTm9uZV0pWzBdCiAgICAgICAgaWYgdXBsb2FkcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgaWYgX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkLmhhc19lZmZlY3QoKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3J1bnRpbWUuYXRfY3JlYXRlX211bHRpX3BhcnRfdXBsb2FkLmluamVjdF9lcnJvcihzZWxmKQoKICAgICAgICAgICAgaWYgX3J1bnRpbWUuZmFrZV9tdWx0aXBhcnRfdXBsb2FkOgogICAgICAgICAgICAgICAgdXBsb2FkX2lkID0gZ2V0X3JhbmRvbV9zdHJpbmcoNSkKICAgICAgICAgICAgICAgIF9ydW50aW1lLnJlZ2lzdGVyX2Zha2VfdXBsb2FkKHVwbG9hZF9pZCwgcGFydHMucGF0aCkKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9mYWtlX3VwbG9hZHMocGFydHMucGF0aCwgdXBsb2FkX2lkKQoKICAgICAgICB1cGxvYWRfaWQgPSBwYXJhbXMuZ2V0KCJ1cGxvYWRJZCIsIFtOb25lXSlbMF0KICAgICAgICBpZiBfcnVudGltZS5pc19mYWtlX3VwbG9hZCh1cGxvYWRfaWQsIHBhcnRzLnBhdGgpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5fZmFrZV9wb3N0X29rKHBhcnRzLnBhdGgpCgogICAgICAgIHJldHVybiBzZWxmLnJlZGlyZWN0KCkKCiAgICBkZWYgZG9fSEVBRChzZWxmKToKICAgICAgICBzZWxmLnJlZGlyZWN0KCkKCiAgICBkZWYgZG9fREVMRVRFKHNlbGYpOgogICAgICAgIHNlbGYucmVkaXJlY3QoKQoKCmNsYXNzIF9UaHJlYWRlZEhUVFBTZXJ2ZXIoc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLCBodHRwLnNlcnZlci5IVFRQU2VydmVyKToKICAgICIiIkhhbmRsZSByZXF1ZXN0cyBpbiBhIHNlcGFyYXRlIHRocmVhZC4iIiIKCiAgICBkZWYgc2V0X3Vwc3RyZWFtKHNlbGYsIHVwc3RyZWFtX2hvc3QsIHVwc3RyZWFtX3BvcnQpOgogICAgICAgIHNlbGYudXBzdHJlYW1faG9zdCA9IHVwc3RyZWFtX2hvc3QKICAgICAgICBzZWxmLnVwc3RyZWFtX3BvcnQgPSB1cHN0cmVhbV9wb3J0CgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGh0dHBkID0gX1RocmVhZGVkSFRUUFNlcnZlcigoIjAuMC4wLjAiLCBpbnQoc3lzLmFyZ3ZbMV0pKSwgUmVxdWVzdEhhbmRsZXIpCiAgICBpZiBsZW4oc3lzLmFyZ3YpID09IDQ6CiAgICAgICAgaHR0cGQuc2V0X3Vwc3RyZWFtKHN5cy5hcmd2WzJdLCBzeXMuYXJndlszXSkKICAgIGVsc2U6CiAgICAgICAgaHR0cGQuc2V0X3Vwc3RyZWFtKCJtaW5pbzEiLCA5MDAxKQogICAgaHR0cGQuc2VydmVfZm9yZXZlcigpCg== | base64 --decode > broken_s3.py'] (cluster.py:105, run_and_check) 2026-10-27 17:54:20 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:True nothrow:False cmd: ['python', 'broken_s3.py', '8083'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:20 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:20 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:21 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:22 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:22 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:22 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:23 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:23 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:23 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:24 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:24 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:25 [ 397 ] DEBUG : Exitcode:7 (cluster.py:117, run_and_check) 2026-10-27 17:54:26 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:26 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/'] (cluster.py:105, run_and_check) 2026-10-27 17:54:28 [ 397 ] DEBUG : Stdout:OK (cluster.py:113, run_and_check) 2026-10-27 17:54:28 [ 397 ] DEBUG : broken_s3.py answered OK on attempt 5 (mock_servers.py:53, start_mock_servers) 2026-10-27 17:54:28 [ 397 ] INFO : Mock server broken_s3.py started (mock_servers.py:68, start_mock_servers) 2026-10-27 17:54:28 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:28 [ 397 ] INFO : list_objects (0): [] (test.py:123, list_objects) 2026-10-27 17:54:28 [ 397 ] DEBUG : run container_id:roottestmergetrees3_resolver_1 detach:False nothrow:True cmd: ['curl', '-s', 'http://localhost:8083/mock_settings/reset'] (cluster.py:2004, exec_in_container) 2026-10-27 17:54:28 [ 397 ] DEBUG : Command:['docker', 'exec', 'roottestmergetrees3_resolver_1', 'curl', '-s', 'http://localhost:8083/mock_settings/reset'] (cluster.py:105, run_and_check) 2026-10-27 17:54:28 [ 397 ] DEBUG : Stdout:OK (cluster.py:113, run_and_check) ------------------------------ Captured log call ------------------------------- 2026-10-27 17:54:28 [ 397 ] DEBUG : Executing query CREATE TABLE central_query_log ( control_plane_id UUID, pod_id LowCardinality(String), scrape_ts_microseconds DateTime64(6) CODEC(Delta(8), LZ4), event_date Date, event_time DateTime, payload Array(String), payload_01 String, payload_02 String, payload_03 String, payload_04 String, payload_05 String, payload_06 String, payload_07 String, payload_08 String, payload_09 String, payload_10 String, payload_11 String, payload_12 String, payload_13 String, payload_14 String, payload_15 String, payload_16 String, payload_17 String, payload_18 String, payload_19 String ) ENGINE=MergeTree() PARTITION BY toYYYYMM(event_date) ORDER BY (control_plane_id, e on node (cluster.py:3423, query) 2026-10-27 17:54:28 [ 397 ] DEBUG : Executing query SYSTEM STOP MERGES central_query_log on node (cluster.py:3423, query) 2026-10-27 17:54:29 [ 397 ] DEBUG : Executing query INSERT INTO central_query_log SELECT control_plane_id, pod_id, toStartOfHour(event_time) + toIntervalSecond(randUniform(0,60)) as scrape_ts_microseconds, toDate(event_time) as event_date, event_time, payload, payload[1] as payload_01, payload[2] as payload_02, payload[3] as payload_03, payload[4] as payload_04, payload[5] as payload_05, payload[6] as payload_06, payload[7] as payload_07, payload[8] as payload_08, payload[9] as payload_09, payload[10] as payload_10, payload[11] as payload_11, payload[12] as payload_12, payload[13] as payload_13, payload[14] as payload_14, payload[15] as payload_15, payload[16] as pay on node (cluster.py:3423, query) _______________ test_s3_disk_reads_on_unstable_connection[node] ________________ [gw0] linux -- Python 3.10.12 /usr/bin/python3 cluster = node_name = 'node' @pytest.mark.parametrize("node_name", ["node"]) def test_s3_disk_reads_on_unstable_connection(cluster, node_name): node = cluster.instances[node_name] create_table(node, "s3_test", storage_policy="unstable_s3") > node.query( "INSERT INTO s3_test SELECT today(), *, toString(*) FROM system.numbers LIMIT 9000000" ) test_merge_tree_s3/test.py:685: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ helpers/cluster.py:3424: in query return self.client.query( helpers/client.py:36: in wrap return func(self, *args, **kwargs) helpers/client.py:74: in query ).get_answer() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_answer(self): self.process.wait(timeout=DEFAULT_QUERY_TIMEOUT) self.stdout_file.seek(0) self.stderr_file.seek(0) stdout = self.stdout_file.read().decode("utf-8", errors="replace") stderr = self.stderr_file.read().decode("utf-8", errors="replace") if ( self.timer is not None and not self.process_finished_before_timeout and not self.ignore_error ): logging.debug(f"Timed out. Last stdout:{stdout}, stderr:{stderr}") raise QueryTimeoutExceedException("Client timed out!") if ( self.process.returncode != 0 or self.remove_trash_from_stderr(stderr) ) and not self.ignore_error: > raise QueryRuntimeException( "Client failed! Return code: {}, stderr: {}".format( self.process.returncode, stderr ), self.process.returncode, stderr, ) E helpers.client.QueryRuntimeException: Client failed! Return code: 243, stderr: Received exception from server (version 23.8.16): E Code: 499. DB::Exception: Received from 172.16.4.6:9000. DB::Exception: Message: Poco::Exception. Code: 1000, e.code() = 0, Timeout (version 23.8.16.43.altinitystable (altinity build)), bucket root, key data/klp/runtykdmoekqcgutpddqijwoxltza, object size 4289817. Stack trace: E E 0. ./build_docker/./contrib/llvm-project/libcxx/include/exception:134: Poco::Exception::Exception(String const&, int) @ 0x000000003e024ad3 in /usr/bin/clickhouse E 1. ./build_docker/./src/Common/Exception.cpp:98: DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000001d5b7590 in /usr/bin/clickhouse E 2. ./build_docker/./contrib/llvm-project/libcxx/include/string:1499: DB::S3Exception::S3Exception(Aws::S3::S3Errors, fmt::v8::basic_format_string::type, fmt::v8::type_identity::type, fmt::v8::type_identity::type, fmt::v8::type_identity::type>, String const&, String const&, String const&, unsigned long&) @ 0x000000002e5b2aec in /usr/bin/clickhouse E 3. ./build_docker/./src/IO/WriteBufferFromS3.cpp:675: void std::__function::__policy_invoker::__call_impl>(std::__function::__policy_storage const*) @ 0x000000002e5e034d in /usr/bin/clickhouse E 4. ./build_docker/./src/IO/WriteBufferFromS3TaskTracker.cpp:120: void std::__function::__policy_invoker::__call_impl&&)::$_0, void ()>>(std::__function::__policy_storage const*) @ 0x000000002e5f932d in /usr/bin/clickhouse E 5. ./build_docker/./contrib/llvm-project/libcxx/include/__functional/function.h:0: std::__packaged_task_func (std::function&&, Priority)> DB::threadPoolCallbackRunner>(ThreadPoolImpl>&, String const&)::'lambda'(std::function&&, Priority)::operator()(std::function&&, Priority)::'lambda'(), std::allocator (std::function&&, Priority)> DB::threadPoolCallbackRunner>(ThreadPoolImpl>&, String const&)::'lambda'(std::function&&, Priority)::operator()(std::function&&, Priority)::'lambda'()>, void ()>::operator()() @ 0x000000002e57f1ad in /usr/bin/clickhouse E 6. ./build_docker/./contrib/llvm-project/libcxx/include/future:0: std::packaged_task::operator()() @ 0x000000002d5c10be in /usr/bin/clickhouse E 7. ./build_docker/./base/base/../base/wide_integer_impl.h:809: ThreadPoolImpl>::worker(std::__list_iterator, void*>) @ 0x000000001d89b35c in /usr/bin/clickhouse E 8. ./build_docker/./src/Common/ThreadPool.h:243: ThreadFromGlobalPoolImpl::ThreadFromGlobalPoolImpl>::scheduleImpl(std::function, Priority, std::optional, bool)::'lambda0'()>(void&&)::'lambda'()::operator()() @ 0x000000001d8a57c0 in /usr/bin/clickhouse E 9. ./build_docker/./base/base/../base/wide_integer_impl.h:809: ThreadPoolImpl::worker(std::__list_iterator) @ 0x000000001d891e52 in /usr/bin/clickhouse E 10. ./build_docker/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:302: void* std::__thread_proxy[abi:v15000]>, void ThreadPoolImpl::scheduleImpl(std::function, Priority, std::optional, bool)::'lambda0'()>>(void*) @ 0x000000001d8a012d in /usr/bin/clickhouse E 11. ? @ 0x00007fe35d2b8a83 in ? E 12. ? @ 0x00007fe35d34a8e0 in ? E . (S3_ERROR) E (query: INSERT INTO s3_test SELECT today(), *, toString(*) FROM system.numbers LIMIT 9000000) helpers/client.py:239: QueryRuntimeException ------------------------------ Captured log setup ------------------------------ 2026-10-27 17:54:29 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:29 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:30 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:30 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:31 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:31 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:32 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:32 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:33 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:33 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:34 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:34 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:35 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:35 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:36 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:36 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:37 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:37 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:38 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:38 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:39 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:39 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:39 [ 397 ] DEBUG : http://172.16.4.4:9001 "GET /root?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=data%2F HTTP/1.1" 200 0 (connectionpool.py:546, _make_request) 2026-10-27 17:54:39 [ 397 ] INFO : list_objects (1): ['data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov'] (test.py:123, list_objects) 2026-10-27 17:54:39 [ 397 ] DEBUG : http://172.16.4.4:9001 "DELETE /root/data/bmx/nujtdbbnjmlpaqcxqkholjwuujmov HTTP/1.1" 204 0 (connectionpool.py:546, _make_request) ------------------------------ Captured log call ------------------------------- 2026-10-27 17:54:39 [ 397 ] DEBUG : Executing query DROP TABLE IF EXISTS s3_test on node (cluster.py:3423, query) 2026-10-27 17:54:39 [ 397 ] DEBUG : Executing query CREATE TABLE s3_test ( dt Date, id Int64, data String, INDEX min_max (id) TYPE minmax GRANULARITY 3 ) ENGINE=MergeTree() PARTITION BY dt ORDER BY (dt, id) SETTINGS storage_policy='unstable_s3',old_parts_lifetime=0,index_granularity=512,temporary_directories_lifetime=1 on node (cluster.py:3423, query) 2026-10-27 17:54:40 [ 397 ] DEBUG : Executing query INSERT INTO s3_test SELECT today(), *, toString(*) FROM system.numbers LIMIT 9000000 on node (cluster.py:3423, query) ============================== slowest durations =============================== 70.95s call test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] 44.89s setup test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] 30.47s setup test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 22.78s teardown test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node] 22.23s teardown test_postgresql_protocol/test.py::test_python_client 17.32s setup test_postgresql_protocol/test.py::test_python_client 15.63s setup test_library_bridge/test_exiled.py::test_bridge_dies_with_parent 10.88s setup test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node] 10.07s setup test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] 3.83s teardown test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 2.32s teardown test_library_bridge/test_exiled.py::test_bridge_dies_with_parent 0.80s call test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] 0.58s call test_library_bridge/test_exiled.py::test_bridge_dies_with_parent 0.31s setup test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node] 0.30s setup test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node] 0.27s call test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node] 0.27s call test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 0.22s call test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node] 0.22s call test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node] 0.07s call test_postgresql_protocol/test.py::test_python_client 0.00s teardown test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node] 0.00s teardown test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] 0.00s teardown test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] 0.00s teardown test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node] =========================== short test summary info ============================ FAILED test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node] FAILED test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node] PASSED test_postgresql_protocol/test.py::test_python_client SKIPPED [1] test_library_bridge/test_exiled.py:53: Leak sanitizer falsely reports about a leak of 16 bytes in clickhouse-odbc-bridge SKIPPED [1] test_merge_tree_load_parts/test.py:209: Skip with debug build and sanitizers. This test intentionally triggers LOGICAL_ERROR which leads to crash with those builds SKIPPED [3] test_merge_tree_s3/test.py:861: Disabled for sanitizers ============== 2 failed, 1 passed, 5 skipped in 163.00s (0:02:42) ============== Traceback (most recent call last): File "/home/ubuntu/_work/_temp/test/git-repo-copy/tests/integration/./runner", line 455, in subprocess.check_call(cmd, shell=True) File "/usr/lib/python3.10/subprocess.py", line 369, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command 'docker run --rm --name clickhouse_integration_tests_jjplh7 --privileged --dns-search='.' --volume=/home/ubuntu/_work/_temp/test/build/clickhouse-odbc-bridge:/clickhouse-odbc-bridge --volume=/home/ubuntu/_work/_temp/test/build/clickhouse:/clickhouse --volume=/home/ubuntu/_work/_temp/test/build/clickhouse-library-bridge:/clickhouse-library-bridge --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/programs/server:/clickhouse-config --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/tests/integration:/ClickHouse/tests/integration --volume=/home/ubuntu/_work/_temp/test/git-repo-copy/src/Server/grpc_protos:/ClickHouse/src/Server/grpc_protos --volume=/run:/run/host:ro --mount type=bind,source=/home/ubuntu/_work/_temp/test/dockerd_volume_dir,target=/var/lib/docker -e DOCKER_HELPER_TAG=1864 -e DOCKER_BASE_TAG=1864 -e DOCKER_KERBERIZED_HADOOP_TAG=1864 -e DOCKER_KERBEROS_KDC_TAG=1864 -e DOCKER_MYSQL_GOLANG_CLIENT_TAG=1864 -e DOCKER_MYSQL_JAVA_CLIENT_TAG=1864 -e DOCKER_MYSQL_JS_CLIENT_TAG=1864 -e DOCKER_MYSQL_PHP_CLIENT_TAG=1864 -e DOCKER_NGINX_DAV_TAG=1864 -e DOCKER_POSTGRESQL_JAVA_CLIENT_TAG=1864 -e DOCKER_CLIENT_TIMEOUT=300 -e COMPOSE_HTTP_TIMEOUT=600 -e CLICKHOUSE_USE_NEW_ANALYZER=1 -e PYTHONUNBUFFERED=1 -e PYTEST_ADDOPTS="--dist=loadfile -n 5 -rfEps --run-id=1 --color=no --durations=0 test_library_bridge/test_exiled.py::test_bridge_dies_with_parent test_merge_tree_load_parts/test.py::test_merge_tree_load_parts_filesystem_error 'test_merge_tree_s3/test.py::test_heavy_insert_select_check_memory[node]' 'test_merge_tree_s3/test.py::test_s3_disk_reads_on_unstable_connection[node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory0-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory1-node]' 'test_merge_tree_s3/test.py::test_s3_engine_heavy_write_check_mem[in_flight_memory2-node]' test_postgresql_protocol/test.py::test_python_client -vvv" altinityinfra/integration-tests-runner:1864 ' returned non-zero exit status 1.